JAVA中创建对象的几种方式

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

一、几种方式

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值