導航:首頁 > 編程語言 > java類對象初始化

java類對象初始化

發布時間:2023-07-10 22:20:20

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了,初始化的目的是為了讓變數有值,防止使用時出現異常。

(5)java類對象初始化擴展閱讀:

作用

1、遇到new,getstatic,putstatic,或invokestatic這4條位元組碼指令時,如果類沒有進行過初始化,則需要先觸發其初始化。生成這四條指令單最常見的Java代碼場景是:

使用new關鍵字實例化對象的時候,讀取或設置一個類的靜態欄位(被final修飾,已在變異期把結果放入常量池的靜態欄位除外)的時候,以及調用一個類的靜態方法的時候。

2、使用java.lang.reflect包的方法對類進行反射調用的時候,如果類沒有進行過初始化,則需要先出法其初始化。

3、當初始化一個類的時候,如果發現其父類還沒有進行初始化,則需要先出法其父類的初始化。

4、當虛擬機啟動時,用戶需要指定一個要執行的主類(包含main()方法的那個類),虛擬機會先初始化這個主類。

閱讀全文

與java類對象初始化相關的資料

熱點內容
如何驗證web伺服器是否正常工作 瀏覽:131
全球最大的加密貨幣網站 瀏覽:284
解壓文件為什麼有問號 瀏覽:389
php考試系統模板 瀏覽:431
pdf導出圖片模糊 瀏覽:610
我的世界編玩邊學伺服器地址 瀏覽:456
基於單片機的火災報警系統 瀏覽:166
上海追星用什麼app 瀏覽:423
海馬m5壓縮機維修 瀏覽:98
抖音怎麼給自己喜歡的加密 瀏覽:247
中國五大加密貨幣 瀏覽:263
程序員手疼7年查6處骨腫瘤 瀏覽:39
python列表對象的創建與刪除 瀏覽:467
python刪除excel表格中的一行 瀏覽:521
android資料庫的增刪改查 瀏覽:632
雲伺服器2g4g有什麼區別 瀏覽:324
顯示文件夾所有文件的文件名函數 瀏覽:213
可以在網站寫代碼的編譯器 瀏覽:76
王者換伺服器怎麼不用重玩 瀏覽:328
武漢編譯ipfs雲存儲器 瀏覽:52