我一直在想乙個問題,做迴圈的時候變數在迴圈體內定義省記憶體還是變數在迴圈體外定義省記憶體,於是做了下實驗:
import junit.framework.testcase;
class holdmemory
}public class memorycase extends testcase
system.out.println(runtime.getruntime().freememory());}}
和下面的code進行比較:
import junit.framework.testcase;
class holdmemory
}public class memorycase extends testcase
system.out.println(runtime.getruntime().freememory());}}
結果兩個列印的結果是一樣的,當然我是分兩次執行的,不是在一一起執行的。所以感覺沒有區別,可能從作用域來說作用域越小,越容易被**吧,所以並不是變數定義在外面科學,感覺應該是定義在裡面更好一些,因為生命周期短,容易被**。
但是從cpu角度講,可能寫在外面的話,建立新變數的過程省了,是不是更加節省cpu執行單元?
另外有以下**可以跑著看看記憶體什麼時候被**,你可以試試寫在外面好還是寫在裡面好,我跑著試了試,感覺都一樣:
package com.ibm.partnerworld.vic.testcase;
import junit.framework.testcase;
class holdmemory catch (interruptedexception e)
}@override
protected void finalize() throws throwable
}public class memorycase extends testcase
system.out.println(runtime.getruntime().freememory());}}
Java變數作用域
資料型別的 初始值byte 0short 0int 0long 0lchar u0000 float 0.0f double 0boolean false 所有引用型別 null 不引用任何物件 一.變數的作用域 全域性變數 區域性變數 根據作用域 作用範圍 來分,一般將變數分為全域性變數和區域性變...
Java 變數的作用域
規定了變數所能使用的範圍,只有在作用域範圍內變數才能被使用。根據變數宣告地點的不同,變數的作用域也不同。根據作用域的不同,一般將變數分為不同的型別 類變數 區域性變數 方法引數變數及異常處理引數變數。下面對這幾種變數進行詳細說明。類變數也稱為成員變數,宣告在類中,不屬於任何乙個方法,作用域是整個類。...
變數 作用域和記憶體問題
1.1 動態的屬性 引用型別 var person new object person.name nicholas alert person.name nicholas 基本型別 var name nicholas name.age 27 alert name.age undefined1.2 複製...