Java - почему классы System и Runtime имеют одинаковые методы? - PullRequest
9 голосов
/ 17 ноября 2011

Мне недавно стало интересно, почему у java.lang.Runtime и java.lang.System одинаковые методы для загрузки библиотеки, сбора мусора и подобных операций. Это из-за исторических причин, для удобства, или они действительно отличаются? Оба класса доступны с JDK 1.0 ...

Ответы [ 3 ]

4 голосов
/ 17 ноября 2011

Мое предположение (помните, это предположение) состоит в том, что методы класса System существуют для удобства.Например, System.gc(); является статическим, где Runtime.gc(); является методом экземпляра.Это упрощает вызов, поскольку вам не нужно получать экземпляр Runtime.

2 голосов
/ 17 ноября 2011

Система предоставляет различные вещи, для которых разработчик может использовать Систему.

Меня беспокоит программист, играющий напрямую с Runtime.Чтобы система вызывала методы, они должны быть выставлены.

Система предоставляет интерфейс к среде выполнения, позволяющий получить доступ к методам среды выполнения, которые могут вызываться программистами.Вызовите системные методы и позвольте им делегировать соответственно.

0 голосов
/ 17 ноября 2011

Если вы посмотрите, например, на метод System#load(String), вы увидите, что он вызывает метод Runtime#load(String).То же самое для gc().Так что, скорее всего, по историческим причинам.

...