问答详情
源自:8-6 Java 中的构造方法

关于在本类定义中实例化本类对象的问题

代码

package com.antique;

public class Test {

    private String s = "123";

    public String getS() {
        return s;
    }

    public static void main(String[] args){

        System.out.println(new Test().getS());
    }

}

背景

在一个类中有实例化本类对象的行为,我的理解如下:Java程序分为编译与运行两部分,在编译的时候使用javac,这个时候把`Test.java`编译成`Test.class`,在执行到以上程序的`new Test()`时,JVM把该指令传递给CPU,CPU在堆空间才开辟一个具体的内存空间用来存放一个Test对象。

问题:存放在对空间中的Test对象,其中也有一个本身自己的实例化的代码,该代码会不会执行,造成类似于迭代效果的后果?

提问者:Antique 2017-08-27 15:32

个回答

  • 慕粉095609116
    2017-08-27 18:16:27

    不会,堆中的test对象的默认值是个空值

  • qq_Smile夏汐_0
    2017-08-27 18:13:46

    什么叫类似迭代效果的后果?