Java创建对象的四种方式

1、new关键字

这是常用的创建对象的方法,调用构造方法,语法格式如下:
类名 对象名=new 类名();

//使用new关键字创建对象
Student student1=new Student("小刘",22);

2、反射 newInstance()

在 Java 中,可以使用 java.lang.Class 或者 java.lang.reflect.Constuctor 类的 newlnstance() 实例方法来创建对象,代码格式如下:

java.lang.Class Class 类对象名称=java.lang.Class.forName(要实例化的类全称);
类名 对象名=(类名)Class类对象名称.newInstance();

//调用 java.lang.Class 的 newInstance() 方法创建对象
        Class cl=Class.forName("Student");
        Student student2=(Student)cl.newInstance();

3、clone()方法

该方法不常用,使用该方法创建对象时,要实例化的类必须继承 java.lang.Cloneable 接口。
语法格式如下:
类名对象名=(类名)已创建好的类对象名.clone();

//调用对象的 clone() 方法创建对象
        Student student3=(Student)student2.clone();

4、反序列化

运用反序列化手段,调用java.io.ObjectInputStream对象的 **readObject()**方法

说明:

new关键字和newInstance()都会明确的显式的调用构造函数 ;

clone()是在内存上对已有对象的影印,所以不会调用构造函数 ;
它会创建一个复制的对象,这个对象和原来的对象具有不同的内存地址,但它们的属性值相同。且需要类实现
Cloneable
接口。

反序列化是从文件中还原类的对象,也不会调用构造函数。

无论釆用哪种方式创建对象,Java 虚拟机在创建一个对象时都包含以下步骤:

给对象分配内存。
将对象的实例变量自动初始化为其变量类型的默认值。
初始化对象,给实例变量赋予正确的初始值。

**注意:**每个对象都是相互独立的,在内存中占有独立的内存地址,并且每个对象都具有自己的生命周期,当一个对象的生命周期结束时,对象就变成了垃圾,由 Java 虚拟机自带的垃圾回收机制处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值