java什么是初始化?
初始化就是給變量一個(gè)初始值。初始化的目的是為了讓變量有值,防止使用時(shí)出現(xiàn)異常?!就扑]學(xué)習(xí):java課程】
例如:
聲明一個(gè)變量:
String aa = "abc"; int cc =0;
其中abc和0就是初始化的值,最后值不一定是abc或者0
假如你覆蓋了aa的值如下:
aa = "def" ; cc=1;
那最后aa變量的值就是def,cc變量就是1了,初始化的目的是為了讓變量有值,防止使用時(shí)出現(xiàn)異常。
擴(kuò)展資料:
作用
1、遇到new,getstatic,putstatic,或invokestatic這4條字節(jié)碼指令時(shí),如果類沒(méi)有進(jìn)行過(guò)初始化,則需要先觸發(fā)其初始化。生成這四條指令單最常見的Java代碼場(chǎng)景是:
使用new關(guān)鍵字實(shí)例化對(duì)象的時(shí)候,讀取或設(shè)置一個(gè)類的靜態(tài)字段(被final修飾,已在變異期把結(jié)果放入常量池的靜態(tài)字段除外)的時(shí)候,以及調(diào)用一個(gè)類的靜態(tài)方法的時(shí)候。
2、使用java.lang.reflect包的方法對(duì)類進(jìn)行反射調(diào)用的時(shí)候,如果類沒(méi)有進(jìn)行過(guò)初始化,則需要先出法其初始化。
3、當(dāng)初始化一個(gè)類的時(shí)候,如果發(fā)現(xiàn)其父類還沒(méi)有進(jìn)行初始化,則需要先出法其父類的初始化。
4、當(dāng)虛擬機(jī)啟動(dòng)時(shí),用戶需要指定一個(gè)要執(zhí)行的主類(包含main()方法的那個(gè)類),虛擬機(jī)會(huì)先初始化這個(gè)主類。