2011-11-17 60 views

回答

2

系统公开了各种各样的东西,它可能适合开发人员使用System for。

我会担心一个程序员直接与运行时间玩。为了系统调用这些方法,他们需要被暴露。

系统为运行时提供一个接口,以便访问适合程序员调用的运行时方法。调用System方法并让它们适当地进行委托。

+0

我不明白你想表达什么。如果Java不希望开发人员直接使用Runtime,那么它应该使其成为私有的而不是公共的。实际上,我们可以自由地调用Runtime的方法。 – Chao

+0

@Richard Runtime类以不可移植的方式公开底层的JVM和OS环境。 System类公开了JVM和OS的一致可移植视图。 Runtime不能是私有的,因为包括System在内的许多类都需要调用它。也有限制直接调用方法的情况可能适用。 – BillThor

+0

你的意思是我们应该总是喜欢使用System类,如果可能的话?快捷方式在某个地方可能是个好主意,但是像这样的API设计真的让人困惑。 – Chao

0

如果您在方法System#load(String)上寻找示例,您会看到它称为方法Runtime#load(String)gc()一样。所以这可能是由于历史原因。

+0

我不同意历史的观点。如果您看一下Java 1.0 API,您会发现,这些方法一直存在于System和Runtime中。 – Jonathan

4

我的猜测(记住,它的猜测)是为了方便,System类中的方法。例如,System.gc();是静态的,其中Runtime.gc();是一种实例方法。这使得调用更容易,因为您不需要获得Runtime实例。

相关问题