java中的深拷贝和浅拷贝

java中的深拷贝和浅拷贝

环境:
Idea:2019.3.1
系统:windows10 家庭版
Jdk: 8
java中文api

拷贝

一. 引用拷贝

二. 对象拷贝

浅拷贝

class Person(){
    private Name name;
    private Address address;

    public Person(Person person){
        this.name = person.name;
        this.address = person.address;
    }
}

这样可以看到,新的person的,Name和Address对象,都是指向旧的Name和Address对象,所以两个person是公用一个name,一个address的,当我们去修改其中一个person的address里面的name后,第二个person的也会改变

深拷贝

class Person(){
    private Name name;
    private Address address;

    public Person(Person person){
        this.name = new Name(person.name);
        this.address = new Address(person.address);
    }
}

这样拷贝出来的person,它的name和address都是新对象,所以两个person是完全不同的两个对象


 上一篇
Spring Boot学习 Spring Boot学习
Spring Boot学习Spring Boot环境一、版本仲裁使用idea新建spring boot项目,pom.xml文件中自动导入一个父项目依赖 <dependency> <groupId>or
2020-11-13
下一篇 
集合 集合
集合 环境:Idea:2019.3.1系统:windows10 家庭版Jdk: 8java中文api connection接口 jdk中的详细描述 概述: 是集合类的顶级接口 位置: java.util.Coll
2020-04-22
  目录