Java创建对象的方法有哪些
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"Java创建对象的方法有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 简介J
千家信息网最后更新 2026年11月03日Java创建对象的方法有哪些
本篇内容介绍了"Java创建对象的方法有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1 简介
Java是面向对象的编程语言,只要使用它,就需要创建对象。Java创建对象有六种方法,实际常用的不会这么多,这里权当是记录一下。
2 六种方法
(1)使用new关键字
Pumpkin p1 = new Pumpkin();
(2)反射之Class类newInstance()
Pumpkin p2 = Pumpkin.class.newInstance();
(3)反射之Constructor类的newInstance()
Pumpkin p3 = Pumpkin.class.getDeclaredConstructor().newInstance();
(4)Object对象的clone方法
Pumpkin p4 = (Pumpkin) p1.clone();
注意Object类的clone方法是protected的,在Override的时候,可以改成public,这样让其它所有类都可以调用。
注意浅拷贝和深拷贝。
在这里小编建了一个前端学习交流扣扣群:132667127,我自己整理的最新的前端资料和高级开发教程,如果有想需要的,可以加群一起学习交流
(5)反序列化
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.bin"));
oos.writeObject(p1);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.bin"));
Pumpkin p5 = (Pumpkin) ois.readObject();
ois.close();必须要实现Serializable接口;
需要注意哪些字段可序列化,哪些字段不会被序列化,如何控制;
注意serialVersionUID的作用;
了解Externalizable的不同之处。
(6)使用Unsafe类
Field f = Unsafe.class.getDeclaredField("theUnsafe");
f.setAccessible(true);
Unsafe unsafe = (Unsafe) f.get(null);
Pumpkin p6 = (Pumpkin) unsafe.allocateInstance(Pumpkin.class);很少用的方法,一般不用了解这个方法。
3 示例代码
示例代码如下:
package com.pkslow.basic;import sun.misc.Unsafe;
import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
public class CreateObject {
public static class Pumpkin implements Cloneable, Serializable {
public Pumpkin(){
System.out.println("Constructor called");
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException, CloneNotSupportedException, IOException, ClassNotFoundException, NoSuchFieldException {
System.out.println("---start---");
System.out.println("(1) new");
Pumpkin p1 = new Pumpkin();
System.out.println("(2) Class newInstance");
Pumpkin p2 = Pumpkin.class.newInstance();
System.out.println("(3) Constructor newInstance");
Pumpkin p3 = Pumpkin.class.getDeclaredConstructor().newInstance();
System.out.println("(4) clone");
Pumpkin p4 = (Pumpkin) p1.clone();
System.out.println("(5)Serialization");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.bin"));
oos.writeObject(p1);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.bin"));
Pumpkin p5 = (Pumpkin) ois.readObject();
ois.close();
System.out.println("(6) Unsafe");
Field f = Unsafe.class.getDeclaredField("theUnsafe");
f.setAccessible(true);
Unsafe unsafe = (Unsafe) f.get(null);
Pumpkin p6 = (Pumpkin) unsafe.allocateInstance(Pumpkin.class);
System.out.println("---end---");
}
}输出结果如下:
---start---
(1) new
Constructor called
(2) Class newInstance
Constructor called
(3) Constructor newInstance
Constructor called
(4) clone
(5)Serialization
(6) Unsafe
---end---所以会执行构造函数的有:new关键字、两种反射;
不会执行构造函数的有:clone、序列化、Unsafe类。
"Java创建对象的方法有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
方法
对象
序列
反射
学习
代码
关键
关键字
内容
函数
前端
字段
学习交流
实际
拷贝
更多
知识
示例
交流
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网络科技
互联网黑科技
百单网互联网科技有限公司怎么样
互联网金融监管科技数据
科技互联网项目
互联网是不是新科技
腾讯阿里互联网科技
麻工互联网科技
互联网金融与金融科技
中国互联网科技发展
电子科技大学互联网
重庆科技学院互联网
联恩商钥互联网科技有限公司
哈尔滨新华互联网科技
青岛中康互联网医疗科技有限公司
广州富喜互联网络科技
互联网领先科技宣传片
互联网科技包装股份有限公司上市
互联网科技大佬云集
互联网科技企业文化
互联网科技公司起名
新华互联网科技学校
上海互联网科技有限公司
易通互联网络科技有限公司
苏州大垚互联网科技
科技互联网创业计划书
互联网科技公司做什么
衡水科技产业互联网平台
哈尔滨新华互联网科技学院
广西互联网科技孵化中心