创建对象的方式
01 new 构造方法()
调用构造方法
单例的getInstance()或xxBuilder()或xxxFactory()
02 Class的newInstance()
在jdk9里面被标记为过时了 只能调用空参构造器 访问权限为public
03 Constructor的newInstance()
可以调用空参和带参的构造方法 权限没有要求
04 Object的clone()
不调用任何构造器
要求当前类实现Cloneable 实现clone()方法
05 反序列化
不会调用构造方法
从文件或者网络中获取对象的二进制流
调用java.io.ObjectInputStream对象的readObject()方法
06 第三方库
如Objenesis