谁能帮我解决一下这个Java问题啊 谢了

hhgirl 2010-01-22 10:33:35
public class Test {
static Integer a1 = new Integer(0);
static Integer a2 = new Integer(0);
public static void main(String[] args) {
while(a1>=a2 && a1<=a2 && a1!=a2){
System.out.println("ok");
}
}
}

为什么是死循环呢? 不懂啊!!!
...全文
158 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxwlion0425 2010-01-26
  • 打赏
  • 举报
回复
a1==a2 需要比较hashcode和值只有两者全部等同才成立..
只比较值的话只用equals
liuqianqian 2010-01-26
  • 打赏
  • 举报
回复
a1!=a2 怎么比都是true
hhgirl 2010-01-23
  • 打赏
  • 举报
回复
谢谢大家啊
hhgirl 2010-01-22
  • 打赏
  • 举报
回复
可是 == 比较的是 地址啊 new 了两次 地址应该不同啊
hhgirl 2010-01-22
  • 打赏
  • 举报
回复
那 前面的 >=和<=比较的就是值了? 可是为什么 把 0改成其他值 比如说 9 它 就不是如此了
yuzuru 2010-01-22
  • 打赏
  • 举报
回复
你这3个条件最后完全等价于:a1 == a2。
也就是 whlie (a1 == a2),while (0 == 0),当然死循环。
sj241040135 2010-01-22
  • 打赏
  • 举报
回复
比的是对象,不是数字
fantasy2436 2010-01-22
  • 打赏
  • 举报
回复
a1!=a2 這句返回的是true,因為他們是兩個對象,比較的是地址,而不是值,所以他們兩個不相等!
hhgirl 2010-01-22
  • 打赏
  • 举报
回复
(⊙o⊙)…
hackersun12345 2010-01-22
  • 打赏
  • 举报
回复
static Integer a1 = new Integer(0);
static Integer a2 = new Integer(0);
用==和!=比较的是地址,用>或<时比较的是值,所以a1>=a2 && a1 <=a2 && a1!=a2恒等.
如果:
static Integer a1 = new Integer(0);
static Integer a2 = new Integer(1);
则不成立,因为虽然地址相等,但值不等
liujie616 2010-01-22
  • 打赏
  • 举报
回复
你这里用while有意义吗?直接用一个if就搞定了啊,用while肯定就死循环了啊。
javahuazai 2010-01-22
  • 打赏
  • 举报
回复
"=="比较的是两个对象地址。
新new的两个对象地址不同啊!
nihuajie05 2010-01-22
  • 打赏
  • 举报
回复
autoboxing比较搞吧。。。
哎。。。悲剧啊
不吃鱼的熊 2010-01-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 hhgirl 的回复:]
public class Test {
static Integer a1 = new Integer(0);
static Integer a2 = new Integer(0);
public static void main(String[] args) {
while(a1>=a2 && a1 <=a2 && a1!=a2){
System.out.println("ok");
}
}
}

为什么是死循环呢?  不懂啊!!!
[/Quote]
对象a1、a2 其地址相等,所以 a1 == a2 ,所以就死循环喽!
yuzuru 2010-01-22
  • 打赏
  • 举报
回复
前面少写了点东西,应该是相当于while(a1.intValue() == a2.intValue())。
用<=、>=比较Integer,必须是1.5以上的jdk才可以,也就是要用到自动拆箱,比较int数值。1.4以下的jdk不能编译。
==和!=比较地址,a1、a2都是new Integer(),所以a1!=a2。

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧