请问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()一下再用==比较了 变量访问问题 java中怎么判断按钮重叠了? 怎样让JEditorPane中的textarea自动换行? 验证money类型的正则该怎么写? 弱弱的问个问题:关于数据库中数据的删除 如何多次产生类的唯一实例!!!分不够再加! 如何用jbuilder开发带有gui界面的程序?请指点大致步骤! 怎样运行 ******** 在线等待,关于JPasswordField的,解决问题后立即给分 ******* 救急!!请赐教!!!! 有兄弟做过短信猫短信开发的吗,知道启用轮循模式是什么意思, 如何启动吗 这样的正则表达式如何写
把你的代码这行改成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)