回答
如Java語言規範§4.12.5 Initial Values of Variables中所述,char
屬性的默認值確實爲'\u0000'
(空字符)。
在我的系統中,行System.out.println('\u0000');
打印了一個小方塊,意味着它不是一個可打印的字符 - 正如所料。
這是'\ u0000'。請參閱here for more information。
'\ u0000'是一個字符的默認值。它的十進制等效值爲0.
當您聲明某個字符變量而未初始化它時,缺省情況下會爲其分配'\ u0000'。
看到這個代碼
public class Test {
char c;
public static void main(String args[]) throws Exception {
Test t = new Test();
char c1 = '\u0000';
System.out.println(t.c);
System.out.println(c1);
System.out.println(t.c == c1);
}
}
這段代碼打印真最後打印。
'\u0000'
代表null
。所以如果你打印一個未初始化的char變量,你什麼也得不到。
實際上你會得到一個編譯錯誤;)'\ u0000'是字符字段'初始化'的默認值, – Edd 2015-01-15 16:10:18
默認字符是int值爲0(零)的字符。
char NULLCHAR =(char)0;
char NULLCHAR ='\ 0';
其誘人的說是空白或者整數0按以下證明
char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);
,但我不會這麼說,因爲它可能會有所不同它不同的平臺或將來。我真正關心的是我永遠不會使用這個默認值,所以在使用任何字符之前,只要檢查它是否是\ u0000,然後用它來避免程序中的誤解。就這麼簡單。
默認值爲Character.MIN_VALUE其內部表示爲MIN_VALUE = '\u0000'
此外,您可以檢查字符字段包含默認值
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{
}
注意,有一個明顯的區別在零和零之間。 在http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html(引用上面)中,聲明爲: -
還有一個特殊的空字面值,可以用作任何引用類型的值。 null可以被分配給任何變量,除了基本類型的變量。除了測試它的存在之外,你可以用null值做很少的事情。因此,程序中通常使用null作爲標記來指示某個對象不可用。
這就是爲什麼下面的語句會給你一個錯誤,而不是其他: -
一個字符= NULL; //類型不匹配:不能從null轉換爲char。
char b = 0; //有效的語法。
我認爲這是'\u00000'
或者只是''
,而不是'\u0000'
(一日一有5個零,而最後一個有四個零。)
@ JohannesH.-這看起來像是對我的回答。將此標記爲「不是答案」是不正確的IMO。 – Krease 2016-06-06 05:34:49
\u0000
是Java
對於char類型的默認值正如其他人提到的,您可以使用比較來檢查未初始化變量的值。
char ch;
if(ch==0)
System.out.println("Default value is the null character");
爲char
默認值爲\ u0000的
public class DefaultValues {
char varChar;
public static void main(String...l)
{
DefaultValues ob =new DefaultValues();
System.out.println(ob.varChar=='\u0000');
}
}
這將返回真正
字符的默認值爲null是 '\ u0000的' 按Unicode chart。讓我們看看它在打印時的工作原理。
public class Test_Class {
char c;
void printAll() {
System.out.println("c = " + c);
}
public static void main(String[] args) {
Test_Class f = new Test_Class();
f.printAll();
} }
注意:輸出爲空白。
- 1. 什麼是默認的VB6字符集?
- 2. Django字段的默認值是什麼?
- 3. strtotime製作字符串需要什麼/默認值是什麼?
- 4. 什麼是Page.ResponseEncoding默認值?
- 5. 什麼是GOMAXPROCS默認值
- 6. 什麼是ContinueWith默認值
- 7. 什麼是PHImageRequestOptionsResizeMode默認值?
- 8. WebRequest.Proxy - 什麼是默認值
- 9. AJAX - HTTP標頭值的默認字符編碼是什麼?
- 10. ConnectTimeout在連接字符串中的默認值是什麼?
- 11. 什麼是Java字符串的默認初始值?
- 12. 什麼是MySQL varbinary字符串解釋的默認字符集?
- 13. Solr:沒有顯式設置默認值的字段默認值是什麼?
- 14. StreamReader的默認值是什麼?
- 15. iOS中@property的默認值是什麼?
- 16. FACELETS_REFRESH_PERIOD的默認值是什麼?
- 17. rspec中use_transactional_fixtures的默認值是什麼?
- 18. logLevel的默認值是什麼?
- 19. 什麼是'success_url'變量的默認值
- 20. kCGImageSourceShouldCache的默認值是什麼?
- 21. LSMinimumSystemVersion的默認值是什麼?
- 22. React.PropTypes.func的默認值是什麼
- 23. 「左」屬性的默認值是什麼?
- 24. BlendEquation的默認值是什麼?
- 25. 什麼是asp:textbox.MaxLength的默認值
- 26. android:vmSafeMode的默認值是什麼?
- 27. rmarkdown中pdf的默認值是什麼?
- 28. setlocale()的默認值是什麼意思?
- 29. 什麼是默認的HTML字體?
- 30. HTML中的默認字體是什麼
您可以通過以下方式檢查您的char是否具有默認值:'char == 0' – ACV 2016-05-02 19:50:44