大纲: java如何拷贝对象. 浅拷贝 深拷贝 一.java如何拷贝对象 Person p = new Person(); Person p2 = p; 上例并不是一个拷贝操作,只是把p对象的引用赋给了p2,2个变量指向了同一片heap地址. 想实现拷贝操作需要做2件事情: (1)实现Cloneable接口,这是一个空接口不用重写任何方法. public interface Cloneable {} (2)重写clone方法,注意clone方法是Object类中的native方法,并不是Clon
深拷贝和浅拷贝 值类型 vs 引用类型 在Java中,像数组.类Class.枚举Enum.Integer包装类等等,就是典型的引用类型,所以操作时一般来说采用的也是引用传递的方式: 但是Java的语言级基础数据类型,诸如int这些基本类型,操作时一般采取的则是值传递的方式,所以有时候也称它为值类型. 为了便于下文的讲述和举例,我们这里先定义两个类:Student和Major,分别表示「学生」以及「所学的专业」,二者是包含关系: // 学生的所学专业 public class Major {
对于InputStream的 read(b, off, len) 方法 public int read(byte[] b, int off, int len) throws IOException,Javadoc的说明为: If len is zero, then no bytes are read and 0 is returned; otherwise, there is an attempt to read at least one byte. If no byte is availabl