展开全部
类类型变量并不是简单的将赋的值存储于命名对象中,而是将地址存放于类类型变量中。所以类类型变量之间的赋值语句赋值的是内存地址,赋值后两个变量指向同一地址。
看下面的例子:
public class StringTest {
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public static void main(String[] args) {
StringTest str1=new StringTest();
StringTest str2=new StringTest();
str1.setStr("111111");
str2.setStr("222222");
//类类型之间的赋值,是将str1的内存地址赋值给了str2,赋值后它俩指向了同一内存地址
str2=str1;
str2.setStr("333333");
System.out.println(str1.getStr()); //输出结果为333333
System.out.println(str2.getStr()); //输出结果为333333
}
}
str2=str1之后,两个类实例的变量指向同一个内存地址,如果一个变量改变了,另一个也会改变。
想要理解,建议详细看下java的对象引用对象传递以及堆栈原理。
另外自定义类的确属于引用数据类型。除了八种基本数据类型,其他的都算是引用数据类型。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询