Integer a = new Integer(3); Integer b = new Integer(3)运行后能相等吗?

 我来答
lqldjl
2015-06-20
知道答主
回答量:9
采纳率:0%
帮助的人:1.1万
展开全部
String a = "aa";
String b = "aa";
String c = new String("aa");
String d = new String("aa");
        
        
System.out.println(a == b);
System.out.println(a == c);
System.out.println(d == c);

  对于创建a,会新创建一个对象,而对于b,会先去已创建的对象里寻找是否有相同的值,有的话就使用地址,由于b的值和a的值是相同的,所以b是直接引用a
的值,所以b==a返回的是true。 对于c,又开辟了一个内存空间,所以a==c时一比较地址就false了,c==d也就是同样的道理。

  你只要把String换成Integer,产生的效果是一样的。

昝平皖5P
2020-09-03
知道答主
回答量:1
采纳率:0%
帮助的人:680
展开全部
如果是a==b,结果则为false;如果是a.equals(b),结果则为true。Integer的信息出现在常量池,a创建了一次,已经存在了一个信息3,再次创建b定义为3时,会现在常量池中查找,如果由此数据,则共享数据,所以是相等的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-27
展开全部
你说的相等是什么?a.equal(b)?还是a==b?“= =”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-27
展开全部
不会。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式