从JVM的角度看JAVA代码–代码优化
在JVM载入优化为class文件,运行class文件时,会有JIT(Just-In-Time)的介入,它会做进一步优化,这样就须要考虑是否可能被JIT优化。
片段一:反复计算
// 反复计算,这里b()被计算两次
Object a = b() == null ? "" : b();
// 优化代码
Object c = b();
Object a = c == null ? "" : c;
片段二:反复比較
// 反复查找,这里a被查找两次
Map<String, String> map = new HashMap<String, String>();
map.put("1", "a");
map.put("2", "b");
String str = null;
if(map.containsKey("1")){
str = map.get("1");
// 运行操作
}
// 优化代码
str = map.get("1");
if(str != null) {
// 运行操作
}