在日常学习中遇到的一些知识点记录一下,并分享给大家。本人是一名小白,第一次写文章,如果各位大佬看见的时候,帮忙指出问题,看到会立即更改。

一、几种方式

1.通过new申请对象空间(执行构造方法)

new申请空间然后加载对象,加载了之后在去执行构造方法,在返回产生空间的引用地址

2.通过Class类中newInstance()

先获取当前类对应的运行时类,通过这个类直接newInstance就可以得到对象了

3.通过Constructor类中的newInstance()方法

先获取当前类对应的运行时类,通过运行时类,获取当前某一个构造方法,(找有参、无参构造,找不到就报异常)

以上三种基本都会执行构造方法

4.通过Object类中的clone()方法

Object下的一个重要的方法(理解太浅,不过多说明)

5.通过对象的反序列化

将本地文件中 拆分的有序的字节序列 转化 为一个完整的对象的过程(重新组成堆栈过程)

没有调用构造方法,就是将对象信息读取出来的过程

二、代码片段

1.仅供参考

        //1.通过new申请对象空间(堆内存)        Person person = new Person();        //2.通过Class类中的newInstance()方法         Class clazz = Person.class;         Person p = (Person) clazz.newInstance();         //3.通过Constructor类中的newInstance()方法        Class claqq = Person.class;        Constructor con = claqq.getConstructor(String.class);        Person per = (Person) con.newInstance("zzt");        //4.通过Object类中的clone()方法        //类对象,实现实现Cloneable接口        //不会执行构造方法        //设计模式  ------>Prototype原型模式        //5.通过对象的反序列化        FileInputStream fileInputStream = new FileInputStream("path");        ObjectInputStream ois = new ObjectInputStream(fileInputStream);        Person person1 = (Person) ois.readObject();