① java中數組初始化時用new與不用new有區別嗎
1、不同於String類,String由於實現了常量池
所以new
和不new
有區別:new的話,引用變數指向堆區。不new的話,引用變數指向常量池。
2、對於數組的定義,初始化時用new與不用new
沒區別,只是兩種方式罷了,因為數組是引用數據類型,建立對象時,無論用不用new,數組實體都是放在堆內存中,引用變數放在棧內存。
② Java中的數組在使用new操作符創建時是否被初始化
比較支持第二位的答案,但還是有點不同的,樓主自己衡量一下:
第3題是求最小
第5題是bc;因為string在處理字元串時都是新開辟空間在的,在大數據量時,stringbuffer的優勢很明顯。故選b。又因為string和stringbuffer是不同的類不能這樣直接賦值,但可以加個轉換StringBuffer
sb="(StringBuffer)這里是字元串";
③ JAVA中 數據初始化的三種方法是什麼
public
class
staticinitialization
{
public
static
void
main(string[]
args)
{
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
t2.f2(1);
t3.f3(1);
}
static
table
t2
=
new
table();//1:標記位1
static
cupboard
t3
=
new
cupboard();//2
標記位2
}
//
/:~
/**
1:要執行main方法,必須先載入staticinitialization,載入過程中,發現有靜態變數t2,首先執行t2
=
new
table()
new
table()需要實例化table,必須先載入table類
載入table類的過程中,發現table類也有靜態變數,首先執行static
bowl
b1
=
new
bowl(1);過程和上面一樣,要去創建bow1
創建之前載入bow1類,載入完畢,調用bow1的構造方法,於是列印出「bowl(1)」
b1實例化(創建)完成
然後執行static
bowl
b2
=
new
bowl(2);
再次調用bow1構造方法,列印「bowl(2)」
這時候table類載入完畢,開始實例化t2變數,調用table類構造方法,列印「table()」
執行b2.f(1);
列印「f(1)」
2:道理和上面1一樣,只是在cupboard中,static變數初始化完畢之後,還要去初始化一個非static變數
最後執行main中的方法,注意的是,此時table,cupboard
這2個類的載入過程已經完成,之後創建這2個類的實例的過程中,不再去初始化static變數
有其他問題在hi我
*/
④ JAVA 對象的初始化到底有幾種形式
1、構造器
創建對象時初始化,比較常見。
classa{
publica()
{}
}
public
2、初始化塊
較少見,用於有特殊要求的類。
static
{
}
3、方法
即setter方法,雖然方便(不必在創建對象時一次性初始化),但是可能引發空指針異常。
⑤ 關於java new的問題
person里的b和p都是空指針,所以你需要使用new來初始化。比較簡單的做法是在person的構造函數里初始化b和p。
⑥ 請問java中實例化和初始化區別是什麼
初始化一次,實例化多次,你這么記就沒問題了!
比方一個類,第一次被使用的時候,靜態的資源,包括變數,方法,靜態代碼塊,會進行初始化。
實在記不住,這么想好了,第一次使用,才叫初始化,對吧,那麼初始化最先載入的,當然是靜態的資源。
比如,一個類,有靜態變數,static int a=1;這個靜態變數,就會被初始化,當你第二次調用該類的時候,不必重新給a開辟內存,直接調用已有的。
而實例化,則是一個類new一次,就產生一個實例,比方一個類A。
A a1=new A();
A a2=new A();
a1和a2,就叫做A的實例。創建A對象實例的過程,就叫做實例化。
⑦ JAVA里初始化是什麼意思
初始化就是給變數一個初始值。
例如:
聲明一個變數:String aa = "abc";int cc =0;其中abc和0就是初始化的值,最後值不一定是abc或者 0加入你覆蓋了aa的值如下:
aa = "def" ; cc=1;那最後aa變數的值就是def,cc變數就是1了,初始化的目的是為了讓變數有值,防止使用時出現異常。
作用
1、遇到new,getstatic,putstatic,或invokestatic這4條位元組碼指令時,如果類沒有進行過初始化,則需要先觸發其初始化。生成這四條指令單最常見的Java代碼場景是:
使用new關鍵字實例化對象的時候,讀取或設置一個類的靜態欄位(被final修飾,已在變異期把結果放入常量池的靜態欄位除外)的時候,以及調用一個類的靜態方法的時候。
2、使用java.lang.reflect包的方法對類進行反射調用的時候,如果類沒有進行過初始化,則需要先出法其初始化。
3、當初始化一個類的時候,如果發現其父類還沒有進行初始化,則需要先出法其父類的初始化。
4、當虛擬機啟動時,用戶需要指定一個要執行的主類(包含main()方法的那個類),虛擬機會先初始化這個主類。
⑧ java怎麼new字元串數組初始化
java字元串數組初始化有兩種方式,一種是直接設置值的,一種是實例化後再設置值的
1、直接設置值的方法如下:
Stringname1="zhangsan";
Stringname2="lisi";
String[]names={name1,name2};
//這時的字元串數組長度為2
2、實例化後再設置值的方式如下:
String[]names=newString[2];
names[0]="zhangsan";
names[1]="lisi";
希望能幫到你,有任何疑問歡迎向我提問
⑨ Java類屬性初始化是什麼
1.我們都知道java是面向對象的語言, 那麼類就好比是一個模板, 比如Student類, 這個類其實是一個模板, 是一個規范.
然後我們執行下面這行代碼
Student xiaoMing = new Student();
就相當於我們用Student這個模板去生成了一個對象, 這個對象叫xiaoMing.
如果Student這個類有一個屬性private int age;當我們只是做上面new對象的動作時候, xiaoMing的age並沒有被賦值, 只是初始化成了0
(數值類型的屬性初始化都是0, String則是null, 例如有個字元串類型的屬性name就會是null)
然後xiaoMing.setAge(10); 那麼這個時候xiaoMing的age屬性才變成10,
所以類屬性初始化指的就是在new對象的時候對各個屬性賦予一個初始化的值.
2.為什麼要用構造方法進行屬性初始化:
這個並不是強制的, 構造方法分成無參構造和帶參構造, 用構造方法對屬性進行初始化只是單純的為了方便而已.
⑩ new一個Java對象時,初始化和實例化有什麼區別
一般來說,創建一個對象需要調用該類的構造方法,而構造方法的意義就是給變數初始化,所以繞回來說,在創建對象實例時,就是初始化過程,至少在這個點上,兩者並無本質區別