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

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?

断桥1
浏览 2196回答 2
2回答

hwj3747

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

断桥1

想通了,两个对象调用的属性都是同一个全局变量,所以属性地址相同
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java