请问JAVA Integer的比较如何让128以上的比较为真 JAVAInteger 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 this.i==b.i => this.i.equals(b.i) 把你的代码这行改成public boolean equals(B<L> b) { System.out.println(this.i.hashCode()+"\t"+b.i.hashCode()); //if(this.i==b.i) if(this.i.equals(b.i)) return true; else return false; } 你可以想象成 == 用来比较地址, equals 用来比较值 java除了基本数据类型(如:int,long,char等等)可以直接用运算符==来比较变量的值以外,其他类型(类,包括外覆类)声明的对象如果相比较值或内容是否相等,都必须用equals,如果用==,比较的是对象引用在内存中的地址值,而不是对象引用的内容。 据说128到-127 生成Integer对象时 会缓存。下次再新建同值对象时,就直接引用那个缓存了也就是说128到-127 生成的对象就是一个而在这之外每NEW 一次就是一个新的对象了。对象比较用==号肯定是比地址了 地址不同 那肯定不相等嘛 要用equals来比较this.i.equals(b.i) >=128的就没办法直接用==比较了,因为这是JAVA底层设计的,超过128的整型包装类是不使用对象池的,那你只好显示的intValue()一下再用==比较了 关于如何得到样式中 class的属性 java最大流问题 请问多线程异常问题 怎样用JAVA来监听数据库里的变化 求Java编辑器,来者有分! 发现applet动画窗口嵌在网页里运行效率比较高,但是嵌在jframe窗口里运行,效率就不行 求助.关于InputStream类的int read(byte buffer[])的异常问题! 请教程序中自动生成main方法的快捷键是什么? 推荐几个好的网站或者论坛要人气旺的! C++和JAVA的变量作用域的问题(有趣) 有兄弟做过短信猫短信开发的吗,知道启用轮循模式是什么意思, 如何启动吗 这样的正则表达式如何写
把你的代码这行改成public boolean equals(B<L> b)
{
System.out.println(this.i.hashCode()+"\t"+b.i.hashCode());
//if(this.i==b.i)
if(this.i.equals(b.i))
return true;
else
return false;
}
也就是说128到-127 生成的对象就是一个
而在这之外每NEW 一次就是一个新的对象了。
对象比较用==号肯定是比地址了 地址不同 那肯定不相等嘛 要用equals来比较this.i.equals(b.i)