看博客时,看到一个好的知识点,在此记录一下(平时写代码也没注意)。
参考博客:https://www.cnblogs.com/cxxjohnson/p/6730500.html
循环内不要创建引用对象。
例如:
for(int i = 0 ; i < size ;i++){
Object o = new Object();
}
这种做法会导致内存中有size份Object对象引用存在,size很大的话,就耗费内存了,建议为改为:
Object o = null;
for(int i = 0; i < size; i++){
o = new Object();
}
对象的创建,Object o 会存入栈中,new Object()的时候,会存入堆中。栈中只有一份Object对象引用,每次new Object()的时候,会在堆中创建不同的Objcet, 这时堆中不同的new Object()可以指向栈中的Object o . 在for循环的时候,栈中只需创建一个Object o ,占据一份大小。这样就大大节省了内存空间了。