Java 系统类是单例、抽象还是什么?

Java 系统类是单例、抽象还是什么?,java,singleton,system,localdate,Java,Singleton,System,Localdate,像LocalDate这样的类是不可变的,它有一个私有构造函数,每次我们想要它的对象时,我们都必须调用它的静态方法,比如LocalDate.now()或LocalDate.of(年、月、日)。这些方法使用new关键字并调用该私有构造函数,因此每次创建一个“新引用”。它不是一个单例类,因为我们可以同时拥有多个对象 但是系统类呢?它看起来像LocalDate,它有一个私有构造函数,但没有一个静态方法来调用它。这个类也不是抽象的,所以为什么java程序员编写System类,就像没有人能将它作为对象一样?

LocalDate
这样的类是不可变的,它有一个私有构造函数,每次我们想要它的对象时,我们都必须调用它的静态方法,比如
LocalDate.now()
LocalDate.of(年、月、日)
。这些方法使用
new
关键字并调用该私有构造函数,因此每次创建一个“新引用”。它不是一个单例类,因为我们可以同时拥有多个对象


但是
系统
类呢?它看起来像
LocalDate
,它有一个私有构造函数,但没有一个静态方法来调用它。这个类也不是抽象的,所以为什么java程序员编写
System
类,就像没有人能将它作为对象一样?它背后的设计模式是什么?哪些类的行为是这样的?

它有一个从未调用过的私有构造函数,因此从来没有任何实例(singleton需要一个实例)

它不是抽象的

public final class System {
System
更像是一个名称空间。它只是一个容器,用于存放一堆静态方法和常量


Java不允许您将方法放在类之外,因此有时结果会是一个完全未实例化的“类”。

为什么要实例化
系统
?无论如何,如果你想要一个定义,你可以称它为一个实用类。只不过是一堆相关的方法。
System
是一个静态名称空间,用来放置一些与系统相关的静态方法和文件,但由于java只能在类中包含方法,因此它是一个只有私有构造函数的类,没有人可以使用。它并不意味着被实例化,但也不意味着被继承而不是抽象。为了更好地模拟这样一个构造函数的意图,C语言可以声明没有任何构造函数的静态类,但java没有这种东西。@FedericoklezCulloca我不想实例化它。我想知道为什么它不能被实例化?谢谢,我在找它的名字:“实用类”@MohammadKholghi我不是特别指你。我的意思是“为什么首先要实例化它?”不需要它。@MohammadKholghi
println
不是
System
的方法,而是
System.out
的一个实例。所以有一些东西已经被实例化了。您不需要显式地执行它:)
public final class System {