没有合适的资源?快使用搜索试试~ 我知道了~
Java性能优化
需积分: 0 3 下载量 71 浏览量
2015-12-23
14:49:17
上传
评论
收藏 91KB DOC 举报
温馨提示
试读
25页
Java性能优化,主要从语法、方法、习惯等方面提出建议,值得参考。
资源推荐
资源详情
资源评论
Java 性能优化编程
一 、在 程序中,性能问题的大部分原因并不在于 语言,
而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序
性能。
尽量使用 修饰符。
带有 修饰符的类 是不可派生的。在 核心 中,有许多
应用 的例子,例如 。为 类指定
防止了使用者覆盖 方法。另外,如果一个类是
的,则该类所有 方法都是 的。 编译器会寻找机会内联
()所有的 方法(这和具体的编译器实现有关)。此举
能够使性能平均提高 。
尽量重用对象。
特别是 对象的使用中,出现字符串连接情况时应使用
代替,由于系统不仅要花时间生成对象,以后可能还
需要花时间对这些对象进行垃圾回收和处理。因此生成过多的对象将
会给程序的性能带来很大的影响。
尽量使用局部变量。
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈
( !)中,速度较快。其他变量,如静态变量,实例变量等,都
在堆("#)中创建,速度较慢。
$不要重复初始化变量。
默 认情况下,调用类的构造函数时, 会把变量初始化成确定的
值,所有的对象被设置成 ,整数变量设置成 ,%& 和
'&( 变量设置成 ,逻辑值设置成 )*。当一个类从另一个
类派生时,这一点尤其应该注意,因为用 + 关键字创建一个对象时,
构造函数链中的所有构造函数都会被 自动调用。
这里有个注意,给成员变量设置初始值但需要调用其他方法的时候,
最好放在一个方法比如 ,,,中,因为直接调用某方法赋值可能
会因为类尚未初始化而抛空指针异常,#( *-
*.
在 /0 的应用系统开发中, 中内嵌的 12 语言应
尽量使用大写形式,以减少 0 解析器的解析负担。
3 编程过程中,进行数据库连接,40 流操作,在使用完毕后,
及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销。
5过分的创建对象会消耗系统的大量内存,严重时,会导致内存泄漏,
因此,保证过期的对象的及时回收具有重要意义。
6 的 78 并非十分智能,因此建议在对象使用完毕后,手动设置成
。
9在使用同步机制时,应尽量使用方法同步代替代码块同步。
:尽量减少对变量的重复计算。
比如
1. for(inti=0;i<list.size();i++)
应修改为
1. for(inti=0,len=list.size();i<len;i++)
采用在需要的时候才开始创建的策略。
例如:
1. Stringstr="abc";
2. if(i==1){list.add(str);}
应修改为:
1. if(i==1){Stringstr="abc";list.add(str);}
慎用异常,异常对性能不利。
抛 出异常首先要创建一个新的对象。;&+( 接口的构造函数调
用名为 !; 的本地方 法, !; 方
法检查栈,收集调用跟踪信息。只要有异常被抛出,6 就必须调整
调用栈,因为在处理过程中创建了一个新的对 象。
异常只能用于错误处理,不应该用来控制程序流程。
不要在循环中使用 ;<48 语句,应把 ;<48 放在循环
最外层。
=& 是获取系统错误的类,或者说是虚拟机错误的类。不是所有的
错误 => #& 都能获取到的,虚拟机报错 => #& 就获取不
到,必须用 =& 获取。
通过 的构造函数来设定他的初始化容量,可以明
显提升性能。
的默认容量为 3,当 的容量达到最
大容量时,她会将自身容量增加到当前的 倍/,也就是 ?/。
无论何时,只要 到达她的最大容量,她就不得不创建
一个新的对象数组,然后复制旧的对象数组,这会浪费很多时间。所
以给 设置一个合理的初始化容量值,是很有必要的!
$合理使用 &。
&与 类似,每次扩展容量时,所有现有元素都
要赋值到新的存储空间中。 & 的默认存储能力为 个元素,扩
容加倍。
剩余24页未读,继续阅读
资源评论
zm_android_team
- 粉丝: 3
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功