美文网首页程序员程序猿阵线联盟-汇总各类技术干货
Java中6种创建对象的方法,除了new你还知道啥?

Java中6种创建对象的方法,除了new你还知道啥?

作者: 朱潘 | 来源:发表于2018-11-24 11:14 被阅读18次
封面

今天来聊一聊在Java创建对象的几种方法。在项目里面,可能你经常使用new创建对象,或者就是把创建对象的事情交给框架(比如spring)。那么,除了new以外,你还知道几种创建对象的方法?下面来看看这6种创建对象的方法:

  1. 使用new关键字

  2. Class对象的newInstance()方法

  3. 构造函数对象的newInstance()方法

  4. 对象反序列化

  5. Object对象的clone()方法

  6. 继续往下看,最后揭晓

1.使用new关键字

这是最常用也最简单的方式,看看下面这个例子就知道了。

public class Test {

    private String name;
    public Test() {
    }

    public Test(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args) {
        Test t1 = new Test();
        Test t2 = new Test("张三");
    }
}

2.Class对象的newInstance()方法

还是上面的Test对象,首先我们通过Class.forName()动态的加载类的Class对象,然后通过newInstance()方法获得Test类的对象

public static void main(String[] args) throws Exception {
    String className = "org.b3log.solo.util.Test";
    Class clasz = Class.forName(className);
    Test t = (Test) clasz.newInstance();
}

3.构造函数对象的newInstance()方法

类Constructor也有newInstance方法,这一点和Class有点像。从它的名字可以看出它与Class的不同,Class是通过类来创建对象,而Constructor则是通过构造器。我们依然使用第一个例子中的Test类。

public static void main(String[] args) throws Exception {
    Constructor<Test> constructor;
   try {
        constructor = Test.class.getConstructor();
       Test t = constructor.newInstance();
   } catch (InstantiationException | 
        IllegalAccessException | 
        IllegalArgumentException | 
        InvocationTargetException |
        NoSuchMethodException | 
        SecurityException e) {
        e.printStackTrace();
   }
}

4.对象反序列化

使用反序列化来获得类的对象,那么这里必然要用到序列化Serializable接口,所以这里我们将第一个例子中的Test作出一点改变,那就是实现序列化接口。

public class Test implements Serializable{

    private String name;
    public Test() {
    }

    public Test(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args) throws Exception {
       String filePath = "sample.txt";
     Test t1 = new Test("张三");
     try {
        FileOutputStream fileOutputStream = 
               new FileOutputStream(filePath);
        ObjectOutputStream outputStream = 
               new ObjectOutputStream(fileOutputStream);
        outputStream.writeObject(t1);
        outputStream.flush();
        outputStream.close();

        FileInputStream fileInputStream = 
               new FileInputStream(filePath);
        ObjectInputStream inputStream = 
               new ObjectInputStream(fileInputStream);
        Test t2 = (Test) inputStream.readObject();
        inputStream.close();
        System.out.println(t2.getName());
     } catch (Exception ee) {
           ee.printStackTrace();
     }
    }
}

5.Object对象的clone()方法

Object对象中存在clone方法,它的作用是创建一个对象的副本。看下面的例子,这里我们依然使用第一个例子的Test类。

public static void main(String[] args) throws Exception {
    Test t1 = new Test("张三");
    Test t2 = (Test) t1.clone();
    System.out.println(t2.getName());
}

6.以上五种方法就是所有的方法了,并不存在第六种方法。如果你觉得还有什么可以创建对象的方法,请评论区留言!

欢迎关注我的公众号“java工会”,一起交流技术。

后台回复加群可加入编程序学习交流群
后台回复视频可加免费领取各种视频
后台回复书籍真多可加免费领取各种编程电子书

加小编微信拉(xili22xili)你进技术交流微信群,或者加qq群727096066讨论技术

相关文章

  • Java中6种创建对象的方法,除了new你还知道啥?

    今天来聊一聊在Java创建对象的几种方法。在项目里面,可能你经常使用new创建对象,或者就是把创建对象的事情交给框...

  • 06-Java反射面试题(11题)

    1、除了使用new创建对象之外,还可以用什么方法创建对象? 使用Java反射可以创建对象! 2、Java反射创建对...

  • Java 创建对象的不同姿势

    使用new关键字 使用new关键字是创建对象的最基本方法。这是在java中创建对象的最常见方法。几乎99%...

  • 创建对象的方法

    某面试题:Java中创建实例化对象有哪些方式?①最常见的创建对象方法,使用new语句创建一个对象。②通过工厂方法返...

  • Java Clone 学习

    Java Clone 学习 原文地址:详解Java中的clone方法 通常在Java中我们通过new关键字创建对象...

  • Java垃圾回收机制介绍

    Java垃圾回收机制 Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,...

  • java中clone方法的实现

    java中仅有的创建对象的两种方式:①.使用new操作符创建对象;②.使用clone方法复制对象。由于clone方...

  • Java中的clone方法你知道多少?

    我们知道clone方法在Java中是一个复制对象的方法,那么Java有几种创建对象的方式呢? 1.通过new关键字...

  • Java---构造函数

    Java中对对象的声明和创建使用,语句如下: Human lily = new Human(); 不过这个方法是系...

  • Factory Pattern in Java

    引言 在Java编程中创建一个实例对象你最常用什么方法,我想莫过于通过new关键字吧,new关键字实例化对象是Ja...

网友评论

    本文标题:Java中6种创建对象的方法,除了new你还知道啥?

    本文链接:https://www.haomeiwen.com/subject/rubeqqtx.html