成員變量和局部變量
1.在類中的位置不同
成員變量:在類中定義
局部變量:在方法中定義或者方法的參數(shù)
2.在內(nèi)存中的位置不同
成員變量:在堆內(nèi)存(成員變量屬于對象拄踪,對象進堆內(nèi)存)
局部變量:在棧內(nèi)存(局部變量屬于方法障般,方法進棧內(nèi)存)
3.生命周期不同
成員變量:隨著對象的創(chuàng)建而存在杨耙,隨著對象的銷毀而消失
局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失
4.初始化值不同
成員變量:有默認初始化值,引用類型默認為null
局部變量:沒有默認初始化值,必須定義,賦值梅垄,然后才能使用
比如我們定義一個Person類:
class Person{
String name; //成員變量,在類中定義
int age; //成員變量孟辑,在類中定義
void jump(int hight){ //參數(shù)也是局部變量
int m = hight ; //m也是局部變量
System.out.println("我跳了"+m+"米");
}
}
則在調(diào)用jump方法(p1.jump())時內(nèi)存狀態(tài)變化如下
內(nèi)存狀態(tài).png