当前位置 : 主页 > 编程语言 > java >

Java创建对象的方式有几种?

来源:互联网 收集:自由互联 发布时间:2022-08-15
Java创建对象的方式主要有以下四种: (1)通过new语句实例化一个对象; (2)通过反射机制创建对象; (3)通过clone()方法创建一个对象,被克隆的类需要实现 Cloneable 接口; (4)通

Java创建对象的方式主要有以下四种:

(1)通过new语句实例化一个对象;

(2)通过反射机制创建对象;

(3)通过clone()方法创建一个对象,被克隆的类需要实现 Cloneable 接口;

(4)通过反序列化的方式创建对象,被反序列化的类需要实现 Serializable 接口;

序列化是一种将对象以一连串的字节描述的过程,可以将对象写在流里进行网络传输,或者保存到文件、数据库等系统里;与序列化相反的是反序列化,它将流转换为对象;

四种创建对象的代码示例:

public class User implements Cloneable, Serializable { private String name; public User() { } public User(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static void main(String[] args) throws Exception { // 通过 new 语句创建一个对象 User user1 = new User("张三"); System.out.println(user1.getName()); // 通过反射机制创建一个对象 User user2 = (User) Class.forName("com.example.User").newInstance(); user2.setName("李四"); System.out.println(user2.getName()); // 通过clone()方法创建一个对象 User user3 = (User) user2.clone(); System.out.println(user3.getName()); System.out.println(user2 == user3); // 通过反序列化的方式创建一个对象 ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("user.obj")); outputStream.writeObject(user3); outputStream.close(); ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("user.obj")); User user4 = (User) inputStream.readObject(); inputStream.close(); System.out.println(user4.getName()); System.out.println(user3 == user4); } }

程序运行的结果如下:

张三 李四 李四 false 李四 false

更多有关Java面试相关的知识点可以关注【Java面试手册】小程序,涉及Java基础、多线程、JVM、Spring、Spring Boot、Spring Cloud、Mybatis、Redis、数据库、数据结构与算法等。

::: hljs-center

Java面试手册小程序

:::

上一篇:【Tableau 图表大全2.0】之堆叠条形图
下一篇:没有了
网友评论