❶ java中對象如何初始化
初始化數組有三種方式,以下都是去初始化一個String類型長度2的數組:
方式一:
123String[] strs = new String[2];strs[0] = "0";strs[1] = "1";
方式二:
1String[] strs = new String[]{"0", "1"};
方式三:
1String[] strs = {"0", "1"};
三種方式,都有自己的使用場景,在合適場景使用即可。
❷ JAVA 對象的初始化到底有幾種形式
1、構造器
創建對象時初始化,比較常見。
classa{
publica()
{}
}
public
2、初始化塊
較少見,用於有特殊要求的類。
static
{
}
3、方法
即setter方法,雖然方便(不必在創建對象時一次性初始化),但是可能引發空指針異常。
❸ java的類初始化,隱式,顯示,什麼意思
1.Java對象何時被初始化
Java對象在其被創建時初始化,在Java代碼中,有兩種行為可以引起對象的創建。其中比較直觀的一種,也就是通常所說的顯式對象創建,就是通過new關鍵字來調用一個類的構造函數,通過構造函數來創建一個對象,這種方式在java規范中被稱為「由執行類實例創建表達式而引起的對象創建」。
當然,除了顯式地創建對象,以下的幾種行為也會引起對象的創建,但是並不是通過new關鍵字來完成的,因此被稱作隱式對象創建,他們分別是:
● 載入一個包含String字面量的類或者介面會引起一個新的String對象被創建,除非包含相同字面量的String對象已經存在與虛擬機內了(JVM會在內存中會為所有碰到String字面量維護一份列表,程序中使用的相同字面量都會指向同一個String對象)
●自動裝箱機制可能會引起一個原子類型的包裝類對象被創建;
●String連接符也可能會引起新的String或者StringBuilder對象被創建,同時還可能引起原子類型的包裝對象被創建,比如(本人試了下,在mac ox下1.6.0_29版本的javac,對待下面的代碼會通過StringBuilder來完成字元串的連接,並沒有將i包裝成Integer,因為StringBuilder的append方法有一個重載,其方法參數是int);
2.Java如何初始化對象
當一個對象被創建之後,虛擬機會為其分配內存,主要用來存放對象的實例變數及其從超類繼承過來的實例變數(即使這些從超類繼承過來的實例變數有可能被隱藏也會被分配空間)。在為這些實例變數分配內存的同時,這些實例變數也會被賦予默認值。
上面的代碼中,Foo和Bar中都定義了變數i,在main方法中,我們用Foo引用一個Bar對象,如果實例變數與方法一樣,允許被覆蓋,那麼列印的結果應該是1,但是實際的結果確是0。
但是如果我們在Bar的方法中直接使用i,那麼用的會是Bar對象自己定義的實例變數i,這就是隱藏,Bar對象中的i把Foo對象中的i給隱藏了,這條規則對於靜態變數同樣適用。
在內存分配完成之後,java的虛擬機就會開始對新創建的對象執行初始化操作,因為java規范要求在一個對象的引用可見之前需要對其進行初始化。在Java中,三種執行對象初始化的結構,分別是實例初始化器、實例變數初始化器以及構造函數。
http://www..com/s?wd=52014085078
❹ 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.為什麼要用構造方法進行屬性初始化:
這個並不是強制的, 構造方法分成無參構造和帶參構造, 用構造方法對屬性進行初始化只是單純的為了方便而已.
❺ 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()方法的那個類),虛擬機會先初始化這個主類。