Java成員變量默認值原理詳解
如果我們不做任何初始化工作,變量具有什么默認值,或者是否具有默認值呢?其實,成員變量在創建時,系統會為其分配一個默認值。不同類型的變量,默認值也不相同,下面來看看各種類型的默認值分別是什么。
用例子來說明:先輸入一個java代碼(這里只包括了實例變量)
class Text1 { // 實例成員變量 private boolean bool; private byte b; private short s; private char c; private int i; private long l; private float f; private double d; private String str; private String[] strArray; public void printInstance() { System.out.println('實例成員變量默認值:'); System.out.println('boolean:' + bool); System.out.println('byte:' + b); System.out.println('short:' + s); System.out.println('int:' + i); System.out.println('long:' + l); System.out.println('float:' + f); System.out.println('double:' + d); System.out.println('String:' + str); System.out.println('String[]:' + strArray); System.out.println('char:' + c); }}public class Text{ public static void main(String[] args) { Text1 dv = new Text1(); dv.printInstance(); }}
輸出結果:

下面我們來看看類變量是否和實例變量一樣
class Text1 { // 靜態成員變量 private static boolean boolStatic; private static byte bStatic; private static short sStatic; private static char cStatic; private static int iStatic; private static long lStatic; private static float fStatic; private static double dStatic; private static String strStatic; private static String[] strArrayStatic; public static void printStatic() { System.out.println('靜態成員變量默認值:'); System.out.println('boolean:' + boolStatic); System.out.println('byte:' + bStatic); System.out.println('short:' + sStatic); System.out.println('int:' + iStatic); System.out.println('long:' + lStatic); System.out.println('float:' + fStatic); System.out.println('double:' + dStatic); System.out.println('String:' + strStatic); System.out.println('String[]:' + strArrayStatic); System.out.println('char:' + cStatic); }}public class Text{ public static void main(String[] args) { Text1 dv = new Text1(); dv.printStatic(); }}
輸出結果:

在本程序中聲明了各種類型,分別為8種基本數據類型、引用類型、數組類型。并且聲明為兩組,一組為實例變量,一組為靜態變量。然后一次輸出兩組數據的值。
數組類型與引用類型的默認值相同,都為null,實際上,數組就是一種特殊的類(對象),所以數組類型的變量也就是引用類型的變量。從結果可知,相同類型的實例變量與靜態變量默認值是相同的。
這里有一點奇怪,char類型變量后面什么也沒有輸出。不過,這并不是char類型變量沒有默認值,而是默認值為“空字符”,也就是‘u0000’,數值為0,我們可以證明一下。
class Text1 { char c;}public class Text{ public static void main(String[] args) { Text1 A = new Text1(); System.out.println((int) A.c); System.out.println(A.c == ’u0000’); }}
輸出結果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. 圖文詳解vue中proto文件的函數調用2. 詳解Android studio 動態fragment的用法3. Android如何加載Base64編碼格式圖片4. 基于android studio的layout的xml文件的創建方式5. 解決Android studio xml界面無法預覽問題6. Spring Boot和Thymeleaf整合結合JPA實現分頁效果(實例代碼)7. 什么是python的自省8. 使用Android studio查看Kotlin的字節碼教程9. Vue封裝一個TodoList的案例與瀏覽器本地緩存的應用實現10. .Net Core使用Coravel實現任務調度的完整步驟

網公網安備