java里面创建实例有哪些方式呢?
- 直接new 一个
- 通过反射
- 通过 clone 方法
- 通过反序列化
new 一个实例
// 使用java语言的关键字 new 创建对象,初始化对象数据,这个确实就没有什么好说的了,应该也是用得最多的的了
Dog doge = new Dog();
通过反射生成一个实例
Class.forName('com.mysql.jdbc.Driver.class');//加载 MySql 的驱动类。
类似这种就是反射, 很多框架都用到反射机制, hibernate, struts 都是用反射机制实
现的。
这种方式就需要拿到这个类的路径,
通过 clone 方式
Dog doge = new Dog();
Dog doge2 = doge.clone();
通过反序列化获取对象
一个对象要实现序列化接口,才可以通过反序列化生成对象实例
(为什么要序列化,数据要持久化到硬盘中,或需要进行网络传输,都需要序列化生成为字节数组进行存储或传输,然后再通过字节序列反序列化回对象实例)
private static void read() throws IOException {
// 创建反序列化流对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt"));
// 读取,还原对象
try {
Person p = (Person) ois.readObject();
System.out.println(p.toString());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ois.close();
}
private static void write() throws IOException {
// 创建序列化流对象
// public ObjectOutputStream(OutputStream out)
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt"));
// 创建对象
Person p = new Person("java", 20);
oos.writeObject(p);
// 释放资源
oos.close();
}
参考来源: https://www.jianshu.com/p/7584b028cbda
标签:方式,对象,创建,Dog,Person,实例,new,序列化 From: https://www.cnblogs.com/aaacarrot/p/17067912.html