Java 这会以无限循环的方式进行吗?

Java 这会以无限循环的方式进行吗?,java,static,Java,Static,我是从java开始的,所以如果这听起来很愚蠢,请容忍我 我正在尝试以下代码: First.java 在main函数中,我重新实例化了需要从静态main方法中调用非静态方法的同一个类 虽然这样做有效,但我想知道这是一个好方法吗?以及创建了多少个f实例 我怎样才能确定f是单身 谢谢你回答第一个问题:只创建了第一个类的一个实例 关于第二个问题: 单例模式涉及使用私有构造函数和工厂方法。如果不使用getInstance工厂方法,则无法创建First的新实例,对getInstance的所有调用都将返回相同

我是从java开始的,所以如果这听起来很愚蠢,请容忍我

我正在尝试以下代码:

First.java

在main函数中,我重新实例化了需要从静态main方法中调用非静态方法的同一个类

虽然这样做有效,但我想知道这是一个好方法吗?以及创建了多少个f实例

我怎样才能确定f是单身


谢谢你回答第一个问题:只创建了第一个类的一个实例

关于第二个问题: 单例模式涉及使用私有构造函数和工厂方法。如果不使用getInstance工厂方法,则无法创建First的新实例,对getInstance的所有调用都将返回相同的实例

class First {

    private static First instance = null;
    private First() {}

    public static First getInstance() {
        if (instance == null) {
            instance = new First();
        }
        return instance;
    }
}

class Second {
    public static void main(String[] args) {
        First f = First.getInstance(); //Always the same instance of First.
    }
}

向下投票很好,但至少指出我的错误,所以我知道我做错了什么。这对运行程序有效,但与单例设计模式无关。这很好,并且创建了一个f实例。我正在删除标记。不要向下投票问题。虽然它是Java101甚至OO101,但它对其他初学者有帮助。请参阅此问答以获得澄清:谢谢……这很有帮助。
class First {

    private static First instance = null;
    private First() {}

    public static First getInstance() {
        if (instance == null) {
            instance = new First();
        }
        return instance;
    }
}

class Second {
    public static void main(String[] args) {
        First f = First.getInstance(); //Always the same instance of First.
    }
}