我最近想知道为什么java.lang.Runtime
和java.lang.System
都有相同的库加载,垃圾收集和类似操作的方法。是因为历史原因,为了方便,还是真的不同?这两个类都可以从JDK 1.0中获得......
答案 0 :(得分:4)
我的猜测(请记住,这是猜测),System
类中的方法是为了方便起见。例如,System.gc();
是静态的,其中Runtime.gc();
是实例方法。这使得调用更容易,因为您不需要获取Runtime
实例。
答案 1 :(得分:2)
系统公开了开发人员使用System可能适合的各种事情。
我会担心程序员直接玩Runtime。要使System调用方法,需要公开它们。
System为Runtime提供了一个接口,以便能够访问适合程序员调用的Runtime方法。调用System方法并让它们适当地委派。
答案 2 :(得分:0)
如果您查看方法System#load(String)
的示例,您会看到它调用方法Runtime#load(String)
。 gc()
也是如此。所以这很可能是出于历史原因。