【发布时间】:2013-03-23 18:06:11
【问题描述】:
我有一个简单的疑问。如果有人帮助我,那就太好了。
我有两个字符串:
String string1 = "4"; // and
String string2 = "04";
两个值都相等,但是如何在 java 中比较它们?我们有 equals 和 equalsIgnoreCase 用于比较字符串的 alpha 值,类似于如何比较数值。
【问题讨论】:
-
新整数(字符串1)==新整数(字符串2)
-
@madhairsilence。请注意,您的方法将失败,因为您正在使用
==比较两个Integer对象,这可能被视为犯罪。 -
@RohitJain 请注意
new创建的整数不是“缓存”的。Integer a = 1;与Integer a = new Integer(1);不一样 -
@madhairsilence。 2、Java缓存一定范围内的Integer对象,一般为
[-128, 127],在这种情况下,当你给一个Integer引用赋值一个整型字面量时,它不会创建一个新的Integer对象,如msi所说。我弄错了,缓存在你的情况下不支持 tru。 -
@madhairsilence。 3. 与
==进行对象比较的犯罪是,它并没有真正比较内容,而是参考价值。所以==不会判断两个对象引用指向两个具有相同值的对象是否相等,所以你应该始终使用equals方法进行对象比较。
标签: java