下面這段代碼的行爲就像這樣。第一個聲明給第二個罰款時編譯器錯誤,即使我們打印第二行的結果它給出1270的輸出而不是02366.所以在這種情況下它是否有任何特定的截斷或整數移位?編譯器在Integer上的行爲不同。爲什麼下面的代碼在一種情況下會給編譯器帶來錯誤?
public static void main(String[] args) {
int i =01339;//compiler error out of int range
int j= 02366;//works fine
System.out.println(j); //value 1270
}
另外http://stackoverflow.com/a/35176662/139985 –