创建实例的4种方式
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(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南