1.使用new关键字
2.反序列化
需要实现Serializable接口,然后例如使用对象流序列化并存储到一个文件中,随后可反序列化读取文件中的数据并生成一个对象,例如:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("data.txt"));
A a = (A) ois.readObject();
3.使用clone方法(注意:引用对象需要自己重写,否则仅仅是浅拷贝,复制了一个对象的引用)
步骤:先实现java.lang.Cloneable接口,并实现其定义的clone方法。随后可以通过自己定义的clone来克隆一个对象。
4.反射,例如:
//1
A a= (A) Class.forName("com.xxx.xxx.A").newInstance();
//2
B b = B.class.newInstance();
//3
Class c = ClassLoader.getSystemClassLoader()
.loadClass("com.xxx.xxx.C "); // 加载
c.newInstance();// 初始化 ---> 实例化