java创建对象的几种方式和创建对象的过程

1.创建对象的五种方式

package com.linyf.demo;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

/**
 * 创建对象的五种方式
 */
public class ObjectCreateTest implements Cloneable{
    public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException, CloneNotSupportedException, IOException, ClassNotFoundException {
        // 1. 使用new 关键字创建
        Object o = new Object();

        // 2. 使用反射
        Object o1 = Object.class.newInstance();

        // 3. 使用Constructor
        Constructor<Object> constructor = Object.class.getConstructor();
        Object o2 = constructor.newInstance();

        // 4. clone 需要实现实现Cloneable接口 ----------不常用
        ObjectCreateTest objectCreateTest = new ObjectCreateTest();
        ObjectCreateTest clone = (ObjectCreateTest)objectCreateTest.clone();

        // 5. 反序列化 ------------不常用
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
        ObjectCreateTest seriaObj = (ObjectCreateTest) in.readObject();
    }
}

2.创建对象的过程

对于一个普通Java对象的创建,大致有以下过程:
1、虚拟机遇到new指令,到常量池定位到这个类的符号引用。
2、检查符号引用代表的类是否被加载、解析、初始化过。
3、虚拟机为对象分配内存。
4、虚拟机将分配到的内存空间都初始化为零值。
5、虚拟机对对象进行必要的设置。
6、执行方法,成员变量进行初始化。

发布了11 篇原创文章 · 获赞 0 · 访问量 610

猜你喜欢

转载自blog.csdn.net/fei1234456/article/details/105168302