java局部變量和成員變量html
在java中,局部變量必須初始化;成員變量能夠不用初始化,系統自動初始化。java
class A{ int a; //成員變量 public static void main (String args){ int b; //局部變量 } }
區別:spa
1)成員變量在類中,局部變量在方法中code
2)聲明成員變量時能夠不初始化(被final修飾且沒有static的必須顯式賦值),而局部變量必須手動初始化htm
3)成員變量能夠被public、protected、private、static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;二者均可以定義成final型對象
4)成員變量存儲在堆,局部變量存儲在棧blog
5)存在時間不一樣get
類變量、實例變量、局部變量編譯
類變量是類中獨立於方法以外的變量,用static修飾;class
實例變量也是類中獨立於方法以外的變量,不過沒有static修飾;
局部變量是的方法中的變量
public class Variable{ static int allClicks=0;//類變量 String str="hello world";//實例變量 public void method(){ int i =0;//局部變量 } }
實例變量也稱爲:「域」,「成員變量」,在實體類或數據類中被稱爲「屬性」或「字段」。當實例變量能夠改變時,被稱爲對象的狀態。
final用於常量的聲明,規範要求常量的變量名是大寫的。
static靜態變量:
http://www.cnblogs.com/dongzhiquan/archive/2009/07/21/1994792.html
靜態方法和通常方法的區別:
從使用上來講,主要有3點區別:
一、在外部調用靜態方法時,能夠使用"類名.方法名"的方式,也能夠使用"對象名.方法名"的方式。而實例方法只有後面這種方式。也就是說,調用靜態方法能夠無需建立對象。
二、靜態方法在訪問本類的成員時,只容許訪問靜態成員(即靜態成員變量和靜態方法),而不容許訪問實例成員變量和實例方法;實例方法則無此限制。三、程序的static塊只能調用靜態方法,不能調用實例的方法。若是要追溯其區別的根源,能夠這樣理解:在編譯期間靜態方法的行爲就已經肯定,而實例方法只有在運行期間當實例肯定以後才能肯定