Java实例 Part6:Java中的克隆

Part6:Java中的克隆



Example01:Java对象的假克隆

  • 对象的克隆是Java中的一项高级技术,获得与其相同的对象。

  基本数据类型可以使用“=”来进行克隆,此时两个变量除了相等是没有任何关系的。而对于引用类型数据不能简单地使用“=”进行克隆,这与Java的内存空间使用有关。   
  Java将内存空间分成两块,即栈和堆。在栈中保存基本类型和引用变量;在堆中保存对象。对于引用变量而言,使用“=”将修改引用,而不是复制堆中的对象。此时两个引用变量将指向同一个对象。因此,如果一个变量对其修改则会改变另一个变量。

运行结果:
在这里插入图片描述
代码实现:

public class Employee {
    private String name;
    private int age;

    //省略set()和get()方法
    
    @Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public static void main(String[] args) {
        System.out.println("-----克隆之前:--------");
        Employee employee1 = new Employee();
        employee1.setName("hyn");
        employee1.setAge(20);
        System.out.println("员工1的信息:\n"+employee1);

        System.out.println("-----克隆之后:--------");
        Employee employee2 = employee1;   //将employee1赋值给employee2
        employee2.setName("azw");
        employee2.setAge(21);
        System.out.println("员工1的信息:\n"+employee1);
        System.out.println("员工2的信息:\n"+employee2);
    }
}

Example02:Java对象的浅克隆

  在克隆对象时,如果对象的成员变量是基本数据类型,则使用浅克隆即可完成。如果对象的成员变量包括可变引用类型,则需要深克隆。

运行结果:
在这里插入图片描述
代码实现:

//Address.java
    public class Address {
        private String state;      //所在国家
        private String province;   //所在省
        private String city;       //所在城市
    
        public Address(String state, String province, String city) {
            this.state = state;
            this.province = province;
            this.city &
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值