Java 局部變量與成員變量區別【筆記】

1、定義的位置不一樣
局部變量 定義在方法內部;
成員變量 定義在方法外部,直接在類中。
2、作用範圍不一樣
局部變量 在方法中可用,出了方法便不可用;
成員變量 整個類中通用。
3、默認值不一樣
局部變量 沒有默認值,要使用必須手動賦值
成員變量 有默認值,與數組的規則一樣
PS:
引用型數據的默認值是null
數值型的默認值是0
boolean型的默認值是false
char型的默認值是‘/u0000

示範:

public class Demo{
	String name;//成員變量
	public void methed_A(){//說明點1
		int num=10;//局部變量
		System.out.println(num);
		System.out.println(name);//不報錯,類中可用,輸出null
}
	public void methed_B(){//說明點2
		System.out.println(num);//錯誤寫法,num是A 方法中的局部變量
		System.out.println(name);//不報錯,類中可用
}
	public void methed_C(){//說明點3
		int age;
		System.out.println(age);//報錯“variable ‘age’might not have been initialized”
		//java沒有給方法中的局部變量賦予默認值
		//沒賦值不能用
		System.out.println(name);//不報錯,類中可用
}
	public void methed_D(param){//方法的參數就是局部變量
		System.out.println(param);//不報錯
		//因爲參數在方法調用的時候必然會被賦值的
		//不傳參數你無法使用該方法
}

}

————————————————————
4、內存的位置不一樣(瞭解)
局部變量: 位於棧內存
成員變量:位於堆內存

5、聲明週期不一樣(瞭解)
局部變量:隨方法進棧而開始,出棧而結束
成員變量: 隨對象被創建而誕生,隨對象被垃圾回收而消失
垃圾回收:就是當你不想再用這個對象了,再無用處,那麼JVM可能會在合適的時機把這塊內存清除再利用,但程序員無法控制清除時機)
通常,成員變量壽命更長點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章