背景:
对于好多程序员来说,你问他,如何创建对象,他可能就只知道new个对象不就行了,但是当我们需要看一些框架的源码的时候,经常发现他们不是这样创建对象,然后回过头来,我们就得补充这些基础知识
下面我们就说说常见的创建对象的6种方式:
首先,先写一个对象
1.new对象
没对象就new一个吧,使用new关键字,这是Java创建对象最简单的方式了
2.反射-类派发一个对象
看下newInstance()的注释,看不懂英文的自己百度去
3.反射-构造一个对象
利用反射,调用构造器构造一个对象
4.反射-动态加载一个对象
利用全类名(全类名:包名+类名)反射一个对象吧
5.克隆一个对象
克隆得继承Cloneable 接口,并且重写其 clone() 方法
6.反序列化一个对象
假如以前序列化保存了一个对象在磁盘上,现在就可以反序列化出来。
序列化需要继承Serializable接口
测试
public class Study {
public static void main(String[] args) throws Exception {
serialize();
deSerialize();
}
public static void serialize() {
PersonVO personVO = new PersonVO();
try {
FileOutputStream fileOut = new FileOutputStream("D:\\file\\test\\personVO.txt");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(personVO);
out.close();
fileOut.close();
System.out.println("序列化后的文件保存在:D:\\file\\test\\personVO.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void deSerialize() {
FileInputStream fileIn = null;
try {
fileIn = new FileInputStream("D:\\file\\test\\personVO.txt");
ObjectInputStream in = new ObjectInputStream(fileIn);
PersonVO personVO = (PersonVO) in.readObject();
personVO.test();
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试结果: