java 创建对象有哪几种方式

java中提供了以下四种创建对象的方式:

  • new创建新对象

  • 通过反射机制

通过反射机制创建对象时,首先通过反射机制加载类获得Class类,获得Class类的方法主要有以下三种:

  1. Class.forName("类的全路径");

  1. 类名.Class;

  1. 实例.getClass();

其次使用newInstance()方法创建该类的对象。

  • 采用clone机制

  • 通过序列化机制

通过反序列化创建对象

package com.java.test;
 
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
 
//Serializable-->标志性接口,表示该类的数据成员可以被序列化
public class People implements Serializable{
    public String name;
    public int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public People(){
        this.name="Lili";
        this.age=18;
    }
    public static void main(String[] args){
        People p=new People();
        ObjectOutputStream oos=null;
        ObjectInputStream ois=null;
        try{
            FileOutputStream fos=new FileOutputStream("people.txt");
            oos=new ObjectOutputStream(fos);
            oos.writeObject(p);
            oos.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        //反序列化
        try{
            FileInputStream fis=new FileInputStream("people.txt");
            ois=new ObjectInputStream(fis);
            People p1=(People) ois.readObject();
            System.out.println("p1和p是同一个对象吗?"+(p1==p));
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
//p1和p是同一个对象吗?false

序列化时首先创建一个输出流对象oos,使用oos的writeObject()方法将p对象写入oos对象中去。使用反序列化创建对象时,首先创建一个输入流对象ois,使用输入流对象ois的readObject()方法将序列化存入的对象读出,重新创建一个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值