對數字的默認類型如果我寫這樣的事情有沒有在Java中
System.out.println(18);
哪種類型有「18」? 是int or byte? 或者它還沒有類型?
它不能是int,因爲這樣的事情是正確的:
byte b = 3;
這是不正確的:
int i = 3;
byte bb = i; //error!
編輯: 我想我找到了規範的右部在Assignment Conversion:
常量的編譯時間縮小意味着代碼如:
byte theAnswer = 42;
是允許的。如果沒有縮小,那麼整數字面量42具有類型int的事實意味着需要強制轉換爲字節:
byte theAnswer =(byte)42; //鑄造被允許但不要求
很確定它是一個int – user3282276 2014-12-03 03:23:09
在Java規範中仔細地闡述了原始轉換。整數類型將默認爲「int」,但對於縮小和擴大轉換有特定的規則。 https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html – 2014-12-03 03:25:24
感謝您的鏈接,馬特。 – colorblind 2014-12-03 04:56:24