不要在循环条件中计算

如果在循环(如for循环、while循环)条件中计算,则没循环一边就会计算一次,这会降低系统效率。

int i=0,count=10;

//每次循环都要计算count*2

while (i

//do something

}

应该替换为:

//只计算一次

int total=count*2;

while (total>i) {

//do something

}

尽可能把变量、方法声明为final static 类型

假设要将阿拉伯数字转换成中文数字

public String toChineseNum(int num){

//中文数字

String[] cns = { "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾" };

return cns[num];

}

在这种情况下,把它声明成为一个类变量,并且加上final static 修饰会更加合适,在类加载后就会生成该数组,每次方法调用则不再重新生成数组对象了,这有助于提高系统性能。

//声明为类变量

final staticString[] cns = { "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾" };

public String toChineseNum(int num){

//中文数字

return cns[num];

}

缩小变量的作用于范围

关于变量,能定义在方法内的就定义在方法内,能定义在一个循环体内的就定义在循环体内,能放置在一个try……catch块内的就放置在该块内,其目的是加快GC的回收。

频繁字符串操作使用StringBuilder或StringBuffer

虽然String的连接操作(“+”号)已经做了很多优化,广州java培训班但在大量的追加操作上StringBuilder和StringBuffer还是比“+”号性能好很多

public void Strings(){

String str="Log file is ready ……";

for (int i = 0; i < 3; i++) {

//此处生成三个对象

str+="log"+i;

}

}

应该修改为:

public void stringBuilders(){

StringBuilder sb=new StringBuilder(20000);

sb.append("Log file is ready ……");

for (int i = 0; i < 3; i++) {

sb.append("Log "+i);

}

String log=sb.toString();

}

使用非线性检索

如果在ArrayList中存储了大量数据,使用indexOf查找元素会比java.utils.conllections.binarySearch的效率低很多,原因是binarySearch是二分搜索法,而indexOf使用的是逐个元素比对的方法。

需要注意的是:使用binarySearch搜索时,元素必须进行排序,否则准确性就不可靠了。

不建立冗余对象

不需要建立的对象就不能建立,说起来很容易,要完成遵循此规则难度就很大,我们经常就会无意地创建冗余对象,例如这样代码:

public void doSomething() throws myExecption{

//异常信息

String exceptionMsg="出错了!";

try {

Thread.sleep(10);

} catch (InterruptedException e) {

//转换自定义运行期异常

throw new myExecption(e,exceptionMsg);

}

}

很明显exceptionMsg 对象不应该声明这里,因为只有当抛异常了才会有这个变量的使用。放在这里只会占用内存上的使用空间,在catch块中定义exceptionMsg方法才是正道:需要的时候才能创建an对象。

java提升性能_提升java性能的基本方法相关推荐

  1. c 与java 反射性能_谈谈Java 反射的快慢

    [相关学习推荐:java基础教程] 反射到底是好是坏 说到Java 中的反射,初学者在刚刚接触到反射的各种高级特性时,往往表示十分兴奋,甚至会在一些不需要使用反射的场景中强行使用反射来「炫技」.而经验 ...

  2. java 防止拷贝_[改善Java代码]避免对象的浅拷贝

    建议43: 避免对象的浅拷贝 我们知道一个类实现了Cloneable接口就表示它具备了被拷贝的能力,如果再覆写clone()方法就会完全具备拷贝能力.拷贝是在内存中进行的,所以在性能方面比直接通过ne ...

  3. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

  4. java武功秘籍_请问java全套内容都有什么呢?

    我整理的Java全套内容学习路线,分为6个阶段(大阶段)第一阶段:java内功心法篇 第二阶段:Java武功秘籍(经典框架) 第三阶段:Java高级功法(主流框架) 第四阶段:Java成神之路 第五阶 ...

  5. java catch 空指针异常_关于Java:捕获空指针异常

    我想问的是有关Java的多数知识,但我想它适用于许多语言. 考虑, if(myVariable==null){ doSomethingAboutIt(); } else carryOn(myVaria ...

  6. java中同步_在Java中的方法同步和语句同步(块同步) - Break易站

    Java 多线程 线程主要通过共享对字段的访问和参考字段引用的对象进行通信.这种通信形式非常有效,但可能出现两种错误:线程干扰和内存一致性错误.需要一些同步构造来防止这些错误.以下示例显示了我们需要同 ...

  7. java初学课程_作为java新手应该学习什么课程

    照目前IT行业发展趋势,学java的人越来越多,因为java的应用范围广,薪资待遇在IT行业里也是名列前茅,那么,作为java新手应该学习什么课程呢?动力节点java学院的小编来告诉大家新手应该学哪些 ...

  8. java开发课程表_展示Java开发人员课程包

    java开发课程表 60个小时以上的课程,5门所有级别的课程:成为Java编程专家 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了一个极端的报价 . 我们提供的Java Develo ...

  9. java 简化判断_简化Java内存分析

    java 简化判断 作为一名典型的Java开发人员,除了遵循关闭连接,流等典型的最佳实践外,我从未监视过应用程序的内存使用情况.最近,我们在JBoss服务器中遇到了一些问题,不得不深入研究内存管理Ja ...

  10. java进度条_自学java你需要知道的,适合编程小白

    1. java学习网站 之前在很多学习网站上学习过Java,踩过很多坑,今天给大家推荐一个比较好用的Java学习网站,希望大家能少踩坑 Java教程 | 项目实践一站式java学习 这个网站的针对性强 ...

最新文章

  1. 解决在onCreate()过程中获取View的width和Height为0的4种方法
  2. [洛谷P4721]【模板】分治 FFT
  3. SIGIR 2019 | 为什么你的毛衣显胖又显黑?这个算法给你答案
  4. Linux学习:shell 命令(用户管理)
  5. pheonix从入门到进阶
  6. CBO Cost Formulas基于成本优化器的成本计算公式大全
  7. Android系统为例解读智能手机如何防盗
  8. Esper事件处理引擎 EPL语法-模式匹配
  9. java 返回集合_java – List返回一个对象集合
  10. POJ1006 中国剩余定理
  11. 【CODEVS1191】数轴染色
  12. 在QQ浏览器打开html,QQ浏览器显示网页打开错误的处理
  13. Unity游戏热更新
  14. Python中参数前面的星号
  15. Only no-arg methods may be annotated with @Scheduled 的解决方法
  16. 邮件客户端远程管理邮箱
  17. pdf文件太大怎么变小,如何压缩pdf大小
  18. 计算器算贝塞尔公式_买车贷款怎么算利息?
  19. 数据库身份证号用什么类型_【文末送书】MySQL数据库?看这一篇干货文章就够了!...
  20. 简单数据复杂数据的区别

热门文章

  1. 32. PHP Cookies
  2. 13. CSS 链接
  3. python 装饰器(复杂一点的)
  4. My前端bootstrap(一)
  5. 【IBM Tivoli Identity Manager 学习文档】14 TIM组织结构设计
  6. Jquery—JQuery对radio的操作(01)
  7. 带你领略Object.assign()方法的风骚操作
  8. 恢复误删文件 Windows File Recovery
  9. protoc 生成C++代码
  10. 乐至天气预报软件测试,乐至天气预报15天