在Java中声明引用变量和对其进行初始化有什么区别?

时间:2019-01-18 06:10:27

标签: java

解决方案是该类的名称,以下内容有什么区别?

  1. Solution solution;

  2. Solution solution = new Solution();

2 个答案:

答案 0 :(得分:4)

在Java中,对象声明和分配有三个步骤

  1. Solution solution

    您要告诉Java为新的参考变量分配空间。

    此变量将永远为Solution类型,其唯一目的是 保存对类型为Solution的对象的引用。

    但是我们还没有创建 反对吗,我们吗?

  2. 解决方案= new Solution();

    对象的创建。 Java为新对象分配空间并创建它。其中包括与对象一起出现的所有变量的空间(是实例变量

  3. 解决方案=新的Solution();

    我们正在将引用变量分配给新创建的对象(请注意等号)。

    换句话说,此引用变量将从现在开始与该对象连接,我们可以使用该引用来调用该对象上的方法。

    请注意,最后两个步骤是一行代码,但实际上这里发生了两个不同的步骤。

  

以下内容有什么区别?

Solution solution创建了一个空引用,一个变量等待对象被分配给它。

Solution solution = new Solution()在一行代码中完成了所有三个步骤。

它创建了引用,创建了对象并将它们连接在一起。

您可以在此处阅读有关Java和一般编程中内存分配的更多信息:

  

Where are instance variables of an Object stored in the JVM?

     

What and where are the stack and heap?

答案 1 :(得分:2)

Solution solution;

仅将solution变量定义为Solution,但未进行初始化

Solution solution = new Solution();

还将其初始化为Solution

的实例