1. java 編程中為何創建變數後需要初始化
java是類型安全語言。java語言的這個設計來自這個想法:
一個變數在沒有值之前是不能用它或准確的說不能讀其值的,因為沒有值,對它進行運算沒有意義。因此,做個內置規定
在創建變數在使用前必須初始化,從而幫java程序員避免問題。
2. java中變數的初始化和賦值
首先 初始化的概念就是給變數賦了初始值
當然程序運行中 變數的值會產生版變化 因此權 變數可以賦值
在本程序當中有一個全局變數 i 他的聲明周期是這個類
在hello方法得到執行的時候 i 會被賦值
我不明白你的意思
這是兩個過程
類的構造方法是專門用來初始化參數的
方法中的行為是在方法被調用的時候才發生的
3. java for循環第一個表達式為何不能在循環外初始化
可以啊,這里是你的 a; 這個語句錯了。這個不算語句當然報錯了。
for的第一個;前通常用來初始化的。當然可以放在for外面來初始化。例如:
int a;
for(;a<3;a++){System.out.println(a);}
4. java中關於變數的初始化問題
1是申明了一個abc
數據類型的變數,並實例化。初始值為null。可以使用。
2是申明一個abc
數據類型的變數,沒有實例化,賦值null。為空。不能使用,試用前必須實例化,不然報空指針異常。
3同上,意思差不多。默認本來就是為null的~~
5. Java 變數到底要如何初始化
不同的變數初始化方法不同。
變數包括:
類的屬性,或者叫值域
方法里的局部變數
方法的參數
對於第一種變數,Java虛擬機會自動進行初始化。如果給出了初始值,則初始化為該初始值。如果沒有給出,則把它初始化為該類型變數的默認初始值。
int類型變數默認初始值為0
float類型變數默認初始值為0.0f
double類型變數默認初始值為0.0
boolean類型變數默認初始值為false
char類型變數默認初始值為0(ASCII碼)
long類型變數默認初始值為0
所有對象引用類型變數默認初始值為null,即不指向任何對象。注意數組本身也是對象,所以沒有初始化的數組引用在自動初始化後其值也是null。
對於兩種不同的類屬性,static屬性與instance屬性,初始化的時機是不同的。instance屬性在創建實例的時候初始化,static屬性在類載入,也就是第一次用到這個類的時候初始化,對於後來的實例的創建,不再次進行初始化。這個問題會在以後的系列中進行詳細討論。
對於第二種變數,必須明確地進行初始化。如果再沒有初始化之前就試圖使用它,編譯器會抗議。如果初始化的語句在try塊中或if塊中,也必須要讓它在第一次使用前一定能夠得到賦值。也就是說,把初始化語句放在只有if塊的條件判斷語句中編譯器也會抗議,因為執行的時候可能不符合if後面的判斷條件,如此一來初始化語句就不會被執行了,這就違反了局部變數使用前必須初始化的規定。但如果在else塊中也有初始化語句,就可以通過編譯,因為無論如何,總有至少一條初始化語句會被執行,不會發生使用前未被初始化的事情。對於try-catch也是一樣,如果只有在try塊里才有初始化語句,編譯部通過。如果在catch或finally里也有,則可以通過編譯。總之,要保證局部變數在使用之前一定被初始化了。所以,一個好的做法是在聲明他們的時候就初始化他們,如果不知道要出事化成什麼值好,就用上面的默認值吧!其實第三種變數和第二種本質上是一樣的,都是方法中的局部變數。只不過作為參數,肯定是被初始化過的,傳入的值就是初始值,所以不需要初始化。
6. java中for循環怎麼定義兩個變數
intb=9,a=1;
for(a,b;a<=9&&b>=1;a++,b--){
for(inta=1;a<=9;a++){
System.out.println(b+"*"+a);
}