为了账号安全,请及时绑定邮箱和手机立即绑定

同一个类的不同对象的相同属性的存放地址相同吗?

同一个类的不同对象的相同属性的存放地址相同吗?

断桥1 2016-07-07 08:46:09
public class TestEquals { public static void main(String[] args){ Student s1=new Student("我:","她"); Student s2=new Student("我:","她"); System.out.println(s1==s2); System.out.println(s1.equal(s2)); System.out.println((s1.getMe())==((s2).getMe())); }}class Student { private String me; private String you; public Student(String me,String you){ this.me=me; this.you=you; System.out.println(me+you+"怎么不好好照顾自己?傻!"); } public String getMe(){ return me; }s1对象和s2对象不是放在堆内存的两个不同地方吗?它们调用的"me"的存储地址相同吗?为什么调用"=="比较会返回true?
查看完整描述

2 回答

?
hwj3747

TA贡献2条经验 获得超0个赞

地址不一样啊,因为getMe()得到的字符串相同,所以返回true的吧

查看完整回答
反对 回复 2016-07-07
  • 断桥1
    断桥1
    因为"me"是全局变量,字符串存放的地址是相同的,都是放在常量池里的,不会重复,所以两次返回的是同一个"me"
?
断桥1

TA贡献4条经验 获得超2个赞

想通了,两个对象调用的属性都是同一个全局变量,所以属性地址相同

查看完整回答
反对 回复 2016-07-07
  • 2 回答
  • 0 关注
  • 2195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信