なぜかわからないような奇妙なコードに出くわしました??
public class CrazyTest {
public static void main(String[] args) {
long val = 0L;
for (int i = 0; i < Integer.MAX_VALUE; i++) {
val = i;
}
System.out.println("val = "+val);
int kk =Integer.MAX_VALUE;
System.out.println("kk = "+kk);
long val2 = 0L;
for (int i = 0; i < Integer.MAX_VALUE; i++) {
val2 = i;
}
System.out.println("val2 = "+val2);
}
}
奇妙な1は、「val =」が2回実行中にさまざまになり、値が「val = 493794」、「val = 675042」になるのはなぜですか?
奇妙な 2 は、なぜ「kk = 2147483647」と「val2=2147483645」なのか、なぜギャップ値は 1 ではなく 2 なのか?
私のenvは[Mac OS 64bit 10.8.3]、Eclipseは[Indigo]、jdkは[JavaSE6 MacOS default]です。