0
点赞
收藏
分享

微信扫一扫

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

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面试手册小程序

:::

举报

相关推荐

0 条评论