请问大神 java中 类类型的变量 这句话怎么理解 什么是类类型的变量 自定义类属于引用数据类型吗

望指点迷津 不胜感激

类类型变量并不是简单的将赋的值存储于命名对象中,而是将地址存放于类类型变量中。所以类类型变量之间的赋值语句赋值的是内存地址,赋值后两个变量指向同一地址。

看下面的例子:

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的对象引用对象传递以及堆栈原理。

另外自定义类的确属于引用数据类型。除了八种基本数据类型,其他的都算是引用数据类型。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答