当我运行此类时,for循环似乎提前终止
class Test {
public static void main(String[] args) {
int result = 0;
int end = Integer.MAX_VALUE;
int i;
for (i = 1; i <= end; i += 2) {
System.out.println(i);
}
System.out.println("End:" + i);
}
}
输出为:
1
3
5
...
31173
31175
End:31177
为什么到此结束?有趣的是,如果我System.out.println(i)
在for循环中删除了,输出将是End:-2147483647
。显然,i
has中的值wrapped round
。
我正在使用的Java版本是
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)
我一直在做一些实践技术面试问题,这个问题很容易,但是我想知道我的两个解决方案中更有效的是否真的如此。 我现在看到这里的其他人以前问过这个问题,但我的问题有代码片段,我觉得它可能会为其他正在寻找解决方案的人提供进一步的见解。 问题是:给定一个整数数组和一些数字k,创建一个函数,如果数组中的任意两个数字与k相加,则返回true。 以下是我的“慢”解决方案: 还有我的“快速”解决方案: 我遇到的问题是A
问题内容: 我有一段简单的代码,该代码 应该 是一个无休止的循环,因为它将一直在增长,并且始终会比更大。 但实际上,它可以打印并且不会无限循环。我不知道为什么。但是,当我以以下方式调整代码时: 这变成一个无尽的循环,我不知道为什么。java是否会识别出一个无穷循环并在第一种情况下跳过它,而在第二种情况下必须执行一个方法调用,以使其表现出预期的效果?困惑:) 问题答案: 这两个例子并不是无止境的。
我有一段简单的代码,它应该是一个无休止的循环,因为将一直增长,并且始终大于。 但按原样,它打印并且不会无休止地循环。我想不出为什么。但是,当我以以下方式调整代码时: 它变成了一个无休止的循环,我不知道为什么。java是否认识到它是一个无休止的循环并在第一种情况下跳过它,但在第二种情况下必须执行一个方法调用,这样它的行为就像预期的那样?困惑:)
有了这个,我会检查服务最后一次运行的时间,以及是否有必要再次运行。 我正在将当前日期转换为整数。但后来我得到一个错误:错误: 08-27 17:21:40.930:W/System.err(26577):java.lang.NumberFormatException:无效int:“201308271721” 08-27 17:21:40.930:W/System.err(26577):java.l
问题内容: 我希望用户输入一个字符串,如果该字符串与我的regex表达式不匹配,则希望输出一条消息,然后用户再次输入一个值。 问题是,即使字符串与正则表达式匹配,它也将其视为不匹配。 我的正则表达式:这应该等于- 我的循环: 问题答案: 这些方法检查字符串是否相等,而不检查匹配的正则表达式。 只需替换为。您还应该卸下外部方括号。
问题内容: 似乎PHP的运算符区分大小写。那么有使用理由吗? 执行以下操作是否安全? 问题答案: 使用它的原因是因为 如果str1小于str2,则返回<0;如果str1大于str2,则> 0;如果相等,则> 0。 仅返回或,它不会告诉您哪个是“更大”的字符串。