【java基础】Java常见的创建对象方式

背景:

对于好多程序员来说,你问他,如何创建对象,他可能就只知道new个对象不就行了,但是当我们需要看一些框架的源码的时候,经常发现他们不是这样创建对象,然后回过头来,我们就得补充这些基础知识

下面我们就说说常见的创建对象的6种方式:

首先,先写一个对象

【java基础】Java常见的创建对象方式_第1张图片

1.new对象

没对象就new一个吧,使用new关键字,这是Java创建对象最简单的方式了

【java基础】Java常见的创建对象方式_第2张图片2.反射-类派发一个对象

【java基础】Java常见的创建对象方式_第3张图片

看下newInstance()的注释,看不懂英文的自己百度去

【java基础】Java常见的创建对象方式_第4张图片

3.反射-构造一个对象

利用反射,调用构造器构造一个对象

【java基础】Java常见的创建对象方式_第5张图片

4.反射-动态加载一个对象

利用全类名(全类名:包名+类名)反射一个对象吧

【java基础】Java常见的创建对象方式_第6张图片

5.克隆一个对象

克隆得继承Cloneable 接口,并且重写其 clone() 方法

【java基础】Java常见的创建对象方式_第7张图片

【java基础】Java常见的创建对象方式_第8张图片

6.反序列化一个对象

假如以前序列化保存了一个对象在磁盘上,现在就可以反序列化出来。

序列化需要继承Serializable接口

【java基础】Java常见的创建对象方式_第9张图片

测试

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();
        }
    }
}

测试结果:

【java基础】Java常见的创建对象方式_第10张图片

你可能感兴趣的:(java,开发语言)