天天看點

【java面試題001】Boolean b = new Boolean(“abcde”); 會編譯報錯嗎?

【java面試題001】Boolean b = new Boolean(“abcde”); 會編譯報錯嗎?

  不會編譯報錯,在Boolean的構造函數中,除了”true”和”false”之外的字元串雖然不會造成編譯錯誤,但是會傳回false。

【java面試題001】Boolean b = new Boolean(“abcde”); 會編譯報錯嗎?
因為這個Boolean的構造函數是根據輸入的值判斷的是true還是false或者輸入的值是"true"或"false";
如果輸入的值是Boolean類型true,則傳回true,否則傳回false。

如果輸入的值是String類型的"true"或"false",
那麼這個構造函數會判斷輸入的是否為""為空,也是傳回false,
不為空則進行長度判斷,長度如果不滿足true的長度,那麼也是傳回false,否則傳回true;
如果長度滿足條件則進行對該字元串的每個字元進行編碼轉換,然後繼續判斷每個字元是否滿足條件,也是傳回Boolean類型。
如果滿足條件則将進行無視大小寫的判斷傳回的也是Boolean類型的。

原理就是這樣。

是以說,你這個執行個體化對象Boolean傳入的"abcde"不滿足Boolean類型的true,也沒滿足"true",是以傳回的是false。      

我的GitHub位址:

https://github.com/heizemingjun

我的部落格園位址:

http://www.cnblogs.com/chenmingjun

我的螞蟻筆記部落格位址:

http://blog.leanote.com/chenmingjun

Copyright ©2018 黑澤明軍

【轉載文章務必保留出處和署名,謝謝!】