java实习总结:Java性能优化技巧总结1

.1 不用关键词创建类例子   用关键词创建类例子时构造链中所有构造都会被自动但如果个对象实现了Cloneable接口我们可以clone思路方法clone思路方法不会任何类构造
  在使用设计模式(Design Pattern)场合如果用Factory模式创建对象则改用clone思路方法创建新对象例子非常简单例如下面是Factory模式个典型实现:
public Credit getNewCredit {
Credit;
}
  改进后代码使用clone思路方法如下所示:
private Credit BaseCredit = Credit;
public Credit getNewCredit {
(Credit) BaseCredit.clone;
}
  上面思路对于处理同样很有用
   1.2 使用非阻塞I/O
  版本较低JDK不支持非阻塞I/O API为避免I/O阻塞些应用采用了创建大量线程办法(在较好情况下会使用个缓冲池)这种技术可以在许多必须支持并发I/O流应用中见到如Web服务器、报价和拍卖应用等然而创建Java线程需要相当可观开销
  JDK 1.4引入了非阻塞I/O库(java.nio)如果应用要求使用版本较早JDK在这里有个支持非阻塞I/O软件Software包
  请参见Sun中国网站WebSite调整JavaI/O性能
   1.3 慎用异常
  异常对性能不利抛出异常首先要创建个新对象Throwable接口构造名为fillInStackTrace本地(Native)思路方法fillInStackTrace思路方法检查堆栈收集跟踪信息只要有异常被抛出VM就必须调整堆栈在处理过程中创建了个新对象
  异常只能用于处理不应该用来控制流程
   1.4 不要重复化变量
  默认情况下构造 Java会把变量化成确定值:所有对象被设置成null整数变量(、long)设置成0float和 double变量设置成0.0逻辑值设置成false个类从另个类派生时点尤其应该注意关键词创建个对象时构造链中所有构造都会被自动
   1.5 尽量指定类final修饰符
  带有final修饰符类是不可派生在Java核心API中有许多应用final例子例如java.lang.String为String类指定final防止了人们覆盖length思路方法
  另外如果指定个类为final则该类所有思路方法都是finalJava编译器会寻找机会内联(inline)所有final思路方法(这和具体编译器实现有关)此举能够使性能平均提高50%
   1.6 尽量使用局部变量
  思路方法时传递参数以及在中创建临时变量都保存在栈(Stack)中速度较快其他变量如静态变量、例子变量等都在堆(Heap)中创建速度较慢另外依赖于具体编译器/JVM局部变量还可能得到进步优化请参见尽可能使用堆栈变量
   1.7 乘法和除法
  考虑下面代码:
for (val = 0; val < 100000; val 5) { alterX = val * 8; myResult = val * 2; }
  用移位操作替代乘法操作可以极大地提高性能下面是修改后代码:
for (val = 0; val < 100000; val 5) { alterX = val << 3; myResult = val << 1; }
  修改后代码不再做乘以8操作而是改用等价左移3位操作每左移1位相当于乘以2相应地右移1位操作相当于除以2值得虽然移位操作速度快但可能使代码比较难于理解所以最好加上些注释
Tags:  java学习总结 性能优化 java总结 java实习总结

延伸阅读

最新评论

发表评论