学习经验 https://www.jiaoyubao.cn/ | 手机站
2021年03月25日 14:18:33
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?其实就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无 BUG 上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率是有提升的。
代码优化细节
1、尽量指定类、方法的 final 修饰符
带有 final 修饰符的类是不可派生的。在 Java 核心 API 中,有许多应用 final 的例子,例如 java.lang.String,整个类都是 final 的。为类指定 final 修饰符可以让类不可以被继承,为方法指定 final 修饰符可以让方法不可以被重写。如果指定了一个类为 final,则该类所有的方法都是 final 的。Java 编译器会寻找机会内联所有的 final 方法,内联对于提升 Java 运行效率作用重大,具体参见 Java 运行期优化。此举能够使性能平均提高 50%。
2、尽量重用对象
特别是 String 对象的使用,出现字符串连接时应该使用 StringBuilder/StringBuffer 代替。由于 Java 虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此,生成过多的对象将会给程序的性能带来很大的影响。
3、尽可能使用局部变量
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。
4、及时关闭流
Java 编程过程中,进行数据库连接、I/O 流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果。
5、尽量减少对变量的重复计算
明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。
6、尽量采用懒加载的策略,即在需要的时候才创建
例如:
String str="aaa";
if (i==1){
list.add(str);
}
建议替换为:
if (i==1){
String str="aaa";
list.add(str);
}
7、慎用异常
异常对性能不利。抛出异常首先要创建一个新的对象,Throwable 接口的构造函数调用名为 fillInStackTrace()的本地同步方法,fillInStackTrace() 方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,Java 虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。
好了,就说这么多,希望对大家有用。我是你的学习顾问王敏,选课有问题,快来找行家,我会为你匹配最适的课程,欢迎大家关注我微信(18560125702),学姐近10年教培行业工作经验,从现在开始我就是你的私人顾问,为您的课程进行一个详细系统的讲解哦。返回教育宝头条
北京JAVA培训机构有很多,但是很多人不知道北京JAVA培训哪家好,如何选择正确且靠谱的JAVA培训机构就成了一个非常重要的事情,今天小编就和大家一起来看看该如何选择一家好的JAVA培训机构。
济南JAVA培训机构有很多,但是很多人不知道济南JAVA培训哪家好,如何选择正确且靠谱的JAVA培训机构就成了一个非常重要的事情,今天小编就和大家一起来看看该如何选择一家好的JAVA培训机构。
南京JAVA培训机构有很多,但是很多人不知道南京JAVA培训哪家好,如何选择正确且靠谱的JAVA培训机构就成了一个非常重要的事情,今天小编就和大家一起来看看该如何选择一家好的JAVA培训机构。
深圳JAVA培训机构有很多,但是很多人不知道深圳JAVA培训哪家好,如何选择正确且靠谱的JAVA培训机构就成了一个非常重要的事情,今天小编就和大家一起来看看该如何选择一家好的JAVA培训机构。
广州JAVA培训机构有很多,但是很多人不知道广州JAVA培训哪家好,如何选择正确且靠谱的JAVA培训机构就成了一个非常重要的事情,今天小编就和大家一起来看看该如何选择一家好的JAVA培训机构。