『壹』 java中靜態變數在方法裡面與方法外面的區別
1.Java里的變數按位置定義的位置分為兩種:
(1)成員變數:定義在類中,方法外。有默認值。
(2)局部變數:定義在代碼塊{}或方法中。沒有默認值,使用之前必須顯示賦值。
2.成員變數可以分為靜態變數和非靜態變數,都有默認值。
3.Java不像C/C++,不可以在方法裡面使用static定義所謂的「靜態局部變數」。所以Java里的靜態變數都是成員變數。
『貳』 java中成員變數和局部變數的區別
成員變數:
1、成員變數定義在類中,在整個類中都可以被訪問。
2、成員變數隨著對象的建立而建立,隨著對象的消失而消失,存在於對象所在的堆內存中。
3、成員變數有默認初始化值。
局部變數:
1、局部變數只定義在局部范圍內,如:函數內,語句內等,只在所屬的區域有效。
2、局部變數存在於棧內存中,作用的范圍結束,變數空間會自動釋放。
3、局部變數沒有默認初始化值
在使用變數時需要遵循的原則為:就近原則
首先在局部范圍找,有就使用;接著在成員位置找。
『叄』 java方法變數在使用前必須初始化
1、java中有兩種變數,局部變數和成員變數。成員變數就是定義在類中,方法外,全局的變數。局部變數使用前必須初始化,否則編譯報錯。成員變數可以不初始化,虛擬機會給他默認值。
classtest{
//定義成員變數b
publicstaticintb;
publicstaticvoidmain(String[]args){
System.out.println("hellojava");
//局部變數i
inti;
//這里如果直接輸出會編譯報錯
i=0;
System.out.println(++i);
//這里直接輸出b是可以的,默認為0
System.out.println(b);
}
}
2、局部變數的初始化可以認為是分配初始空間,也就是在內存中要開辟一塊區域來存這個東西,不初始化是沒有內存空間的,也就不能使用。
『肆』 JAVA中什麼時候需要初始化什麼時候不需要
成員變數會被初始化,局部變數不會初始化。
public class Main {
static int a; // 成員變數
public static void main(String[] args) {
int b; // 局部變數
System.out.println(a); // 正確輸出,默認值是0
System.out.println(b); // 編譯異常,沒有初始化。因為程序不會自動賦值
}
}