赞
踩
错误案例:
public class DemoDO{
Boolean isSuccess;
Boolean isDelete;
}
正确写法:
public class DemoDO{
Boolean success;
Boolean delete;
}
说明:反编译出的字节码文件显示每次循环都会new出一个StringBuilder对象,然后进行append操作,最后通过toString方法返回String对象,造成内存资源浪费。
错误案例:
String result;
for (String string : tagNameList) {
result = result + string;
}
正确写法:
StringBuilder stringBuilder = new StringBuilder();
for (String string : tagNameList) {
stringBuilder.append(string);
}
String result = stringBuilder.toString();
说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可。
错误案例:
Map<String, String> map = new HashMap<String, String>();
正确写法:
Map<String, String> map = new HashMap<String, String>(16);
说明:对于Integer var=?在-128至127之间的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。
Integer a = 235;
Integer b = 235;
if (a.equals(b)) {
// code
}
错误案例:
public void f(String str){
String inner = "hi";
if (str.equals(inner)) {
System.out.println("hello world");
}
}
正确写法:
public void f(String str){
String inner = "hi";
if (inner.equals(str)) {
System.out.println("hello world");
}
}
abstract class BaseControllerDemo{
}
abstract class AbstractActionDemo{
}
说明:很多if语句内的逻辑相当复杂,阅读者需要分析条件表达式的最终结果,才能明确什么样的条件执行什么样的语句,那么,如果阅读者分析逻辑表达式错误呢?
错误案例:
if ((file.open(fileName, "w") != null) && (...) || (...)) {
// ...
}
正确写法:
boolean existed = (file.open(fileName, "w") != null) && (...) || (...);
if (existed) {
//...
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。