表達式類型的自動提升

舉個簡單例子

System.out.println('a' + 7 + "Hello");
System.out.println("Hello" + 'a' + 7);

對於上面兩個語句, 在看java瘋狂講義之前, 我可能會認爲輸出差不多, 都是簡單字符串拼接

實際卻沒想象的這麼簡單

如果是

5+2.3f, 你可能會想到涉及到類型轉化, 向上轉, 一個是int類型, 一個是float類型, 所以最終結果是float類型

此題同理, 沒有特殊符號, 運算順序是從左往右, 字符類型和整形, 在運算的時候後會轉化成整形, 也就是'a' 的ascll碼和7進行運算, 運算結果是104, 在和Hello字符串拼接, 所以最終結果是104Hello

第二個依然從左往右, Hello和 'a', 直接轉化成String類型, 變成Helloa,然後在和7運算, 結果是Helloa7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章