1。)
long milli=24*60*60*1000;
long micro=24*60*60*1000*1000;
long result=micro/milli;
结果应为1000
但不是。
请告诉我输出并解释一下吗?
2)
int i=0;
for(a=0;a<=integer.MAX_VAL;a++)
{
i++;
}
S.O.P(i);
通常它会进入infine循环,因为它有最大值它应该从循环中出来。在什么条件下它将成功执行,什么将是例外价值。 .....任何人都可以告诉我关于VM ...在JAVA中处理数字
答案 0 :(得分:5)
你需要在其中加L
进行长时间转换
long micro=24*60*60*1000*1000L
答案 1 :(得分:2)
2)
public class test {
public static void main(String[] ar){
int i=0;
for(int a=0; a< Integer.MAX_VALUE;a++) {
i++;
}
System.out.println(i);
}
}
输出:
<强> 2147483647 强>
答案 2 :(得分:1)
这感觉很危险,不得不猜测问题和答案。 ;)
我认为第二个问题应该是
int i=0;
for(a=0;a<=Integer.MAX_VALUE;a++)
i++
这将进入无限循环,因为a
的所有可能值都是&lt; = MAX_VALUE。
您可以将此循环重写为
int a=0;
do {
i++
} while (a++ != Integer.MAX_VALUE);
i
将溢出时为Integer.MIN_VALUE。