说明:
记录平时需要注意的代码优化细节
1.尽可能的使用重用的对象:String/StringBuffer/StringBuilder
String类:是一个不可变的对象(因为有final的修饰)。所有的返回会新创建一个String对象。所以使用String类来创建频繁的操作是不合理的。
StringBuider:是长度可变的对象,继承于AbstractStringBuilder。可以动态添加数据,不需要新创建对象。
StringBuider:是长度可变的线程安全对象,继承于AbstractStringBuilder。可以动态添加数据,不需要新创建对象。
推荐使用下面两种来字符串拼接。避免产生过多的对象,JVM会消耗时间来GC。
2.final关键字
1.final修饰的类不能被继承。
2.final修饰的方法不能被重写。
3.final修饰的变量不能被改变。
第三点:final修饰的变量不能被改变的是对这个对象的引用地址,并不是对象的内容。
例如:是不能实现的
final String test = new String("test");
test = new String("test1");
3. 循环里面不应该重复创建对象的引用
例如:
for (int i = 1; i <= count; i++)
{
Object obj = new Object();
}
这种做法会导致内存中有count份Object对象引用存在,count很大的话,就耗费内存了,建议为改为:
Object obj = null; for (int i = 0; i <= count; i++) { obj = new Object(); }
这样的话,内存中只有一份Object对象引用,每次new Object()的时候,Object对象引用指向不同的Object罢了,但是内存中只有一份,这样就大大节省了内存空间了。
4.采用懒加载策略,减少变量或者对象的创建
例如:
String test = "test";
if(i == 1){
list.add(test);
}
建议:
if(i == 1){
String test = "test";
list.add(test);
}