社区
非技术区
帖子详情
谁能帮我解决一下这个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
打赏
收藏
谁能帮我解决一下这个Java问题啊 谢了
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"); } } } 为什么是死循环呢? 不懂啊!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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。
面试趣谈:
谢
飞机的
Java
面试之旅
博客以
谢
飞机的
Java
面试之旅为线索,面试官提出了关于JVM、线程池、HashMap、Spring、SpringBoot等技术
问题
,
谢
飞机进行了回答。随后对这些技术
问题
给出了详细解答,包括JVM原理、线程池作用、HashMap工作原理等内容。
谢
飞机的
Java
面试之旅
谢
飞机参加互联网大厂
Java
开发岗位面试,历经三轮。面试涉及
Java
SE、JVM工具、Spring Boot、微服务架构、消息队列、安全控制等知识。他能较好回答基础与复杂
问题
,展示了对
Java
及相关技术栈的理解和
解决
问题
的能力。
Java
面试故事:
谢
飞机的互联网大厂求职之旅
本文讲述了
谢
飞机在互联网大厂的
Java
面试之旅,涵盖基础与框架、微服务与安全、运维与其他三轮面试。面试官围绕Spring Boot、Spring MVC等技术提问,
谢
飞机用形象比喻作答。还对各技术要点进行详解,助小白理解
Java
面试常见
问题
。
大厂
Java
面试:面试官与
谢
飞机的搞笑对话
本文记录了
谢
飞机参加大厂
Java
岗位面试的过程,包含三轮面试。面试官询问了final关键字、线程池、HashMap、Spring AOP、Dubbo等技术
问题
,
谢
飞机进行了回答。最后还给出了这些技术
问题
的答案解析,涉及JVM、微服务架构等内容。
非技术区
23,404
社区成员
70,513
社区内容
发帖
与我相关
我的任务
非技术区
Java 非技术区
复制链接
扫一扫
分享
社区描述
Java 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章