社区
非技术区
帖子详情
谁能帮我解决一下这个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");
}
}
}
为什么是死循环呢? 不懂啊!!!
...全文
156
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。
HEX / RGB 颜色转换工具
颜色转换工具
组合式专用铣齿机床设计(论文 CAD图纸).rar
组合式专用铣齿机床设计(论文 CAD图纸).rar
AI Challenger 2018 阅读理解赛道代码分享.zip
一款 AI 辅助阅读器,三栏设计实现笔记、阅读、对话同屏交互,让深度阅读更高效
易语言源码多任务同时下载源码
易语言源码多任务同时下载源码
Artix-7-XC7A35T-DDR3开发板硬件参考设计资料
源码下载地址: https://pan.quark.cn/s/3a6709c3f9be This is a TPYboard You can get started right away by writing your Python code in 'main.py'. For a serial prompt: - Windows: you need to go to 'Device manager', right click on the unknown device, then update the driver software, using the 'tpybcdc.inf' file found on this drive. Then use a terminal program like Hyperterminal or putty. - Mac OS X: use the command: screen /dev/tty.usbmodem* - Linux: use the command: screen /dev/ttyACM0 Please visit http://www.tpyboard.com/help/ for further help. Designed by TurnipSmart in Shandong!
非技术区
23,404
社区成员
70,513
社区内容
发帖
与我相关
我的任务
非技术区
Java 非技术区
复制链接
扫一扫
分享
社区描述
Java 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章