实现如下(PS:已略去部分代码):
浅拷贝-拷贝构造
运行结果:
Student{age=18, parent=Parent{age=40}}
Student{age=18, parent=Parent{age=42}}
Student{age=20, parent=Parent{age=42}}
2. 重写clone方法
Object类是类结构的根类,其中有一个方法为protected Object clone() throws CloneNotSupportedException,这个方法就是进行的浅拷贝。有了这个浅拷贝模板,我们可以通过调用clone()方法来实现对象的浅拷贝。
使用clone()方法时需要注意以下几点:
-
Object中的clone()方法是被保护的,需要重写才可以调用;
-
重写clone()方法的类必须实现Cloneable接口,否则会抛出异常CloneNotSupportedException。
实现如下(PS:已略去部分代码):
浅拷贝-重写clone
运行结果:
Student{age=18, parent=Parent{age=40}}
Student{age=18, parent=Parent{age=42}}
Student{age=20, parent=Parent{age=42}}
深拷贝实现方式
1. 重写clone方法
与通过重写clone方法实现浅拷贝的基本思路一样,只需要为对象的每一层的每一个对象都实现Cloneable接口并重写clone方法,最后在最顶层的类的重写的clone方法中调用所有的clone方法即可实现深拷贝。
简单的说就是:每一层的每个对象都进行浅拷贝=深拷贝
。
实现如下(PS:已略去部分代码):
深拷贝-重写clone
运行结果:
Student{age=18, parent=Parent{age=40}}
Student{age=18, parent=Parent{age=42}}
Student{age=20, parent=Parent{age=40}}
2. 对象序列化
最后
权威指南-第一本Docker书
引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。
总共包含了:简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。
关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!
链图片转存中…(img-ZPOJoFsj-1714379089926)]
关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!