企图利用java的错误判断机制来提高性能是错误的:1.因为异常机制的设计初衷是用于不正常的情形,所以很少会有JVM实现试图对它们进行优化,使得与显式的测试一样快速。2.把代码放在try-catch块中反而阻止了现在JVM实现本来可能要执行的某些特定优化。3.对数组进行遍历的标准模式并不会导致冗余的检查。有些现在的JVM实现会将它们优化掉。异常应该只用于异常的情况下;它们永远不应该用于正常的流程控制
核心反射机制(core reflection facility)java.lang.reflect,提供了“通过程序来访问关于已装载的类的信息”的能力。丧失了编译时类型检查的好处,包括异常检查。执行反射访问所需要的代码非常笨拙和冗长。性能损失。反射功能只是在设计时(design time)被用到。通常,普通应用程序在运行时不应该以反射方式访问对象。如果只是以非常有限的形式使用反射机制,虽然也要付出
基本类型和装箱基本类型的区别:1.基本类型只有值,而装箱基本类型则具有与它们的值不同的同一性。2.基本类型只有功能完备的至,而每个装箱基本类型除了它对应基本类型的所有功能值之外,还有个非功能值:null。3.基本类型通常比装箱基本类型更节省时间和空间。当在一项操作中混合使用基本类型和装箱基本类型时,装箱基本类型就是自动拆箱,这种情况无一例外。如果null对象引用被自动拆箱,就会得到一个NullPo
为连接N个字符串而重复地使用字符串连接操作符,需要N的平方级的时间。这是由于字符串不可变(见第15条)而导致的不幸结果。当两个字符串被连接在一起时,它们的内同都要被拷贝。Java1.5发型版本中增加了非同步StringBuilder类,代替了现在已经过时的StringBuffer类。原则:不要使用字符串连接操作符来合并多个字符串,除非性能无关
for(Element e : elements) { doSomething(e);} for-each循环在简洁性和预防BUG方面有着传统的for循环无法比拟的优势,并且没有性能损失。应该尽可能地使用for-each循环。遗憾的是,有三种常见的情况无法使用for-each循环:1.过滤——如果需要遍历集合,并删除
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号