
Integer a = new Integer(3); Integer b = new Integer(3)运行后能相等吗?
4个回答
展开全部
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,产生的效果是一样的。
展开全部
如果是a==b,结果则为false;如果是a.equals(b),结果则为true。Integer的信息出现在常量池,a创建了一次,已经存在了一个信息3,再次创建b定义为3时,会现在常量池中查找,如果由此数据,则共享数据,所以是相等的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-27
展开全部
你说的相等是什么?a.equal(b)?还是a==b?“= =”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-27
展开全部
不会。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询