Java中创建对象方式

作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。其实创建对象有很多种方式,下面我介绍下java五种创建对象的方式。

使用new关键字

  • 01

    这是最常见也是最简单的创建对象的方式了。通过这种方式,我们可以调用任意的构造函数(无参的和带参数的)。

    使用Class类的newInstance方法

    • 01

      我们也可以使用Class类的newInstance方法创建对象。这个newInstance方法调用无参的构造函数创建对象。 我们可以通过下面方式调用newInstance方法创建对象:

      使用Constructor类的newInstance方法

      • 01

        和Class类的newInstance方法很像, java.lang.reflect.Constructor类里也有一个newInstance方法可以创建对象。我们可以通过这个newInstance方法调用有参数的和私有的构造函数。 newInstance方法内部调用Constructor的newInstance方法。这也是众多框架,如Spring、Hibernate、Struts等使用后者的原因。

        使用clone方法

        • 01

          无论何时我们调用一个对象的clone方法,jvm就会创建一个新的对象,将前面对象的内容全部拷贝进去。用clone方法创建对象并不会调用任何构造函数。 要使用clone方法,我们需要先实现Cloneable接口并实现其定义的clone方法。

          使用反序列化

          • 01

            当我们序列化和反序列化一个对象,jvm会给我们创建一个单独的对象。在反序列化时,jvm创建对象并不会调用任何构造函数。 为了反序列化一个对象,我们需要让我们的类实现Serializable接口。 我们从下面的字节码片段可以看到,除了第1个方法,其他4个方法全都转变为invokevirtual(创建对象的直接方法),第一个方法转变为两个调用,new和invokespecial(构造函数调用)。

          (0)

          相关推荐

          • Java中final、finally、finalize的区别

            Java中final.finally.finalize的区别与用法,困扰了不少学习者,下面我们就这个问题进行一些探讨,希望对大家的学习有所帮助. 操作方法 01 简单区别: final用于声明属性,方 ...

          • java中对象和对象的引用

            在Java中,有一组名词经常一起出现,它们就是"对象和对象引用",很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然. 操作方法 01 1.何谓对 ...

          • java中引用的概念(JAVA的引用调用)

            Java中为什么没有指针?我们都知道Java与c/c 有个显著的区别就是c/c 有指针的使用,而Java中没有用到指针.之所以Java没有指针的使用(没有显示的使用指针,内部实现机制肯定是有指针的), ...

          • java中的invoke方法

            在了解Java中的invoke()方法前,我们需要知道在哪些场景用到了java反射机制以及如何使用. 操作方法 01 一.反射机制应用场景:逆向代码.动态生成类框架等,使用反射机制能够大大的增强程序的 ...

          • Java使用对象流处理读写java中的 任何对象

            在处理一些需要使用流读写的资源或是对象的时候,我们如果直接使用低级流去处理对象,这样效率会很低.因此,我们使用一个高级流套接到低级流中,低级流读取了资源后,交由高级流去处理传输等. 操作方法 01 创 ...

          • java中的泛型怎么用

            在java语言中,泛型是一个比较常用的功能,我们写的很多java类或者方法可能都会用到泛型,但是一些初学者可能不太了解java泛型的使用方法,下面本文就大致介绍一下java中的泛型. 操作方法 01 ...

          • Java中的关键字

            关键字也称为保留字,是指Java语言中规定了特定含义的标示符.对于保留字,用户只能按照系统规定的方式使用,不能自行定义.Java中常用关键字: 操作方法 01 与数据类型相关 02 与流程控制相关 i ...

          • JAVA中的语句都有哪些,怎么用?

            我们说任何程序语言,都是由一个个条件,用一定的语言习惯串起来的,那么JAVA中都有哪些语句呢,我们一起来看一下. 一.复合语句 01 同C语言或其他语言相同,Java语言的复合语句是以整个块区为单位的 ...

          • java 中各进制之间转换方法

            java中十进制.十六进制.二进制.ASCII码是常用的编码方式,在本篇文章中将这些编码的相互转换直接以代码的形式粘贴出来,以供参考. 十六进制字符串转十进制 01 param hex  十六进制字符 ...