看博客時,看到一個好的知識點,在此記錄一下(平時寫代碼也沒注意)。
參考博客: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 ,佔據一份大小。這樣就大大節省了內存空間了。