一味宠爱|七夕面向对象编程,你知道Java有哪些创建对象的方式吗?
1、用new关键字创建对象 , 需要使用构造器 。//1、使用关键字new创建对象(没有参数调用无参构造、传入参数调用带参构造)Girlfriend girlfriend01 = new Girlfriend();Girlfriend girlfriend02 = new Girlfriend("y", 18);1234new 一个对象经过了哪些过程?
2、使用反射机制创建对象 , 用Class类或Constructor类的newInstance()方法 。当使用Class类里的newInstance()方法 , 调用的是无参构造方法 。
当使用java.lang.reflect.Constructor类里的newInstance方法 , 调用的是有参构造方法 。
1、Class类里的newInstance()【一味宠爱|七夕面向对象编程,你知道Java有哪些创建对象的方式吗?】调用的是无参构造方法
2、Constructor类的newInstance()方法调用的是有参构造方法
3、通过object类的clone方法需要实现Cloneable接口 , 重写object类的clone方法 。 无论何时我们调用一个对象的clone方法 , JVM就会创建一个新的对象 , 将前面对象的内容全部拷贝进去 。 用clone方法创建对象并不会调用任何构造函数 。
4、使用反序列化通过ObjectInputStream的readObject()方法反序列化类当我们序列化和反序列化一个对象 , JVM会给我们创建一个单独的对象 。 为了反序列化一个对象 , 我们需要让我们的类实现Serializable接口 。 在反序列化时 , JVM创建对象并不会调用任何构造函数 。
通过反序列化生成对象的过程主要由以下几个步骤:
1、创建一个对象输入流 , 它可以包装一个其他类型的源输入流 , 如文件输入流;
2、 通过对象输入流的readObject()方法读取对象 。
序列化工具类
public class ObjectUtils {public staticT clone(Girlfriend obj) {T cloneObj = null;try {//写入字节流ByteArrayOutputStream out = new ByteArrayOutputStream();ObjectOutputStream obs = new ObjectOutputStream(out);obs.writeObject(obj);obs.close();//分配内存 , 写入原始对象 , 生成新对象ByteArrayInputStream bis = new ByteArrayInputStream(out.toByteArray());ObjectInputStream ois = new ObjectInputStream(bis);//返回新生成的对象cloneObj = (T) ois.readObject();bis.close();out.close();} catch (IOException | ClassNotFoundException e) {e.printStackTrace();}return cloneObj;}}1234567891011121314151617181920212223242526创建对象各方法的代码 public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException, CloneNotSupportedException {//1、使用关键字new创建对象(没有参数调用无参构造、传入参数调用带参构造)Girlfriend girlfriend01 = new Girlfriend();Girlfriend girlfriend02 = new Girlfriend("y", 18);//2、使用反射机制创建对象 , 使用Class的newInstance()调用默认的无参构造Girlfriend girlfriend03 = Girlfriend.class.newInstance();//反射机制2 , 调用带参Class
推荐阅读
- 一味宠爱|最全盘点卡中国脖子的35项技术,折射中国工业水平的真实现状
- 金在中|4岁遭抛弃,被养父家8个姐姐宠爱,红遍亚洲后亲生父母上门认亲
- T恤|集万千宠爱于一身的T恤,不仅百搭还时髦,难怪这么受欢迎
- 德国天然宠粮Real Nature浩瀚母公司Fressnapf(宠爱碗)最全剖析
- 一味宠爱|上海:打造“四全”在线教育的“上海模式”
- 澎湃新闻|江西这个地方何以成为七夕文化的地标?
- 一味宠爱|2020开学季之手机CPU性能天梯图、拍照天梯图(0903)
- 一味宠爱|Springboot整合K8s读取ConfigMap刷新配置
- 一味宠爱|骗走十亿,“世联通证”究竟什么来头?,100多万人上当
- 一味宠爱|德国专家:中方顶级芯片若自研成功,美将无法对中国技术封锁
