Java记录用等号“=”连接多个引用类型对象(对象复制)

2022/7/2 1:20:17

本文主要是介绍Java记录用等号“=”连接多个引用类型对象(对象复制),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题记录:

引用类型对象可以通过等号“=”来实现属性的通用,原理是对象的“浅克隆”,即复制引用地址。

举例1:

    public static void main(String[] args) {
        StringBuffer buf1 = new StringBuffer("123456");
        //复制“buf1”到“buf2”
        StringBuffer buf2 = buf1;
        //反转buf2的“123456”
        buf2.reverse();
        System.out.println(buf1.toString());
    }

结果:

654321

举例2:

Student:

public static class Student {
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Student() {
        }

    }

Main方法:

   public static void main(String[] args) {
        Student stu1 = new Student();
        stu1.setName("aaa");
        //输出stu1的内存地址
        System.out.println(stu1);
        //输出stu1的name
        System.out.println("stu1_name:" + stu1.getName());
        Student stu2 = stu1;
        //输出stu2的内存地址,可以看出和stu1是一样的,说明是一个对象
        System.out.println(stu2);
        stu2.setName("bbb");
        //因为是同一个对象,所以修改stu2的name后stu1的name也被修改。
        System.out.println("stu1_name:" + stu1.getName());
        stu1.setName("ccc");
        //同理,修改stu1的name后stu2的name也被修改。
        System.out.println("stu2_name:" + stu2.getName());
    }

结果:

com.demo.ceshi.demo2$Student@7eda2dbb
stu1_name:aaa
com.demo.ceshi.demo2$Student@7eda2dbb
stu1_name:bbb
stu2_name:ccc

 



这篇关于Java记录用等号“=”连接多个引用类型对象(对象复制)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程