00问答网
所有问题
java中为什么Integer和String的“==”判断方式不一样
1 为什么
Integer a=1000;Integer b=1000;a==b却返回false?
2 为什么
String a="a";String b="a";a==b却返回true?
举报该问题
推荐答案 2013-05-20
1。Integer是包装类,a和b都是类的引用,自然的内存首地址不同。
2。String是工具类。但是,你赋值的时候,没用
构造方法
,而是在字符串常量池中把"a"赋值给a,"a"赋值给b,当然就相等了。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/jjnDDrITj.html
其他回答
第1个回答 推荐于2018-04-18
String 的生成SUN公司作过优化。标准的实例化方式应该是 String a = new String("a"); 如果你用标准写法,还是会返回false的。
而用简化的实例化形式 String a = "a"; 会先搜索堆中是否有相同对象,有的话不建立,直接将变量指向这个对象,这样就会有String b = "a";时 b==a的情况。因为b和a 是同一个对象。
本回答被网友采纳
第2个回答 2013-05-20
integer是对象,不可以直接这样比较,需要转换成int然后在比较,
用a.intValue()==b.intValue()这样比较试一试的呢。本回答被提问者采纳
第3个回答 2013-05-20
对象不同。int是简化的类型,特别的类。
第4个回答 2013-05-20
2 为什么
String a="a";String b="a";a==b却返回true? 这个比较是不可取的.比较字符串,需要使用EQUALS.
1
2
下一页
相似回答
关于
java中
equals
方法
的疑惑
答:
(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同
。“==”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。比如:String s1,s2,s3 = "abc", s4 ="abc" ;s1 = new String("abc");s2 = new Strin...
java判断字符串
,
为什么
用"
==
"做不了判断
答:
1.字符串""与空对象NULL不是一个意思.字符串""是一个存在的对象
,只不过对象特殊在于它代表了一个空的字符串.空对象是不存在的对象.2.String类重载了equals方法,equals方法比较字符串是否完全匹配,所以 String s="a";boolean b=(s.equals("a"));则得到的b为true,而==则是比较左右两边的对象是...
java
怎么比较两个对象是否相等?
答:
在
Java
API中,有些类重写了equals()
方法
,它们的比较规则是:当且仅当该equals方法参数不是 null,两个变量的类型、内容都相同,则比较结果为true。这些类包括:
String
、Double、Float、Long、
Integer
、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,但是常见的就这些了,具体可以查看API...
为什么java中的
“
1
”
==
“1”是true,而new
String
("1"
答:
常量池:从堆中分配出来的一块存储区域,存储显示
的String
、
Integer
等;例:Stringstr = “abc”, abc这个
字符串
是显示声明,所以存储在常量池;即:String x = "x"; "x" == x; // true而:String x = new String("x"); // 此处x是存储在堆中的对象的一个索引,//很显然,常量与索引不...
大家正在搜
java中构造方法的调用方式
java中处理io的方式
java中什么是构造方法
java中方法和构造方法
java中的多态有两种方式
java中多态的实现方式
java中数组的输入方式
java中arraylist
java中类的构造方法
相关问题
java 中String类型在比较时,为什么用equals ...
java中怎么判断一个string是integer而不是字母...
java Integer和int之间==的比较问题。求解释
java判断字符串,为什么用"=="做不了判断
JAVA里面的int类型和Integer类型有什么不一样?
java中 Integer.getInteger(Strin...
java里面是怎么判断a==b,为什么我2个一样的字符串却判...
java 2个Integer比较的问题(==)