开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

123
返回列表 发新帖
楼主: 鲁凯啸
收起左侧

[android教程] 【转】Java代码优化(长期更新)

[复制链接]
结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:12:02 | 显示全部楼层   山东省青岛市
8、不要在循环中使用try...catch...,应该把其放在最外层

根据网友们提出的意见,这一点我认为值得商榷

回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:11:28 | 显示全部楼层   山东省青岛市
7、慎用异常

异常对性能不利。抛出异常首先要创建一个新的对象,Throwable接口的构造函数调用名为fillInStackTrace()的本地同步方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,Java虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。

回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:11:02 | 显示全部楼层   山东省青岛市
6、尽量采用懒加载的策略,即在需要的时候才创建
例如:
String str = "aaa";
if (i == 1)
{
  list.add(str);

}
建议替换为:
if (i == 1)
{
  String str = "aaa";
  list.add(str);

}


回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:09:38 | 显示全部楼层   山东省青岛市
5、尽量减少对变量的重复计算
明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:
for (int i = 0; i < list.size(); i++){    ...}
建议替换为:
for (int i = 0, length = list.size(); i < length; i++){
     ...
}
这样,在list.size()很大的时候,就减少了很多的消耗
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:07:17 | 显示全部楼层   山东省青岛市
4、及时关闭流
Java编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果。

回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:05:56 | 显示全部楼层   山东省青岛市
3、尽可能使用局部变量
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:05:28 | 显示全部楼层   山东省青岛市
2、尽量重用对象
特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替。由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此,生成过多的对象将会给程序的性能带来很大的影响。

回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2016-12-10 17:05:09 | 显示全部楼层   山东省青岛市
1、尽量指定类、方法的final修饰符
带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50%。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表