что такое файл общих объектов? - PullRequest
5 голосов
/ 09 декабря 2010

При запуске jvm в подробном режиме он показывает, что файлы загружаются из общего объектного файла, как показано ниже

[Loaded java.lang.Object from shared objects file]
[Loaded java.io.Serializable from shared objects file]
[Loaded java.lang.Comparable from shared objects file]
[Loaded java.lang.CharSequence from shared objects file]

Что это за файлы общих объектов?Я думал, что это файлы в rt.jar, и он загружается оттуда;но rt.jar долго открывается вниз

[Loaded java.security.BasicPermissionCollection from shared objects file]
[Opened C:\Program Files\Java\jre6\lib\rt.jar]
[Loaded sun.misc.JavaSecurityProtectionDomainAccess from C:\Program Files\Java\jre6\lib\rt.jar]
[Loaded java.security.ProtectionDomain$2 from C:\Program Files\Java\jre6\lib\rt.jar]

, так или иначе, после извлечения rt.jar я обнаружил, что в нем есть все классы, которые были загружены из файла общего объекта.

1 Ответ

5 голосов
/ 09 декабря 2010

Это обмен данными класса. При запуске HotSpot клиента Sun / Oracle и включении общего доступа (либо -Xshare:auto, который является значением по умолчанию, либо -Xshare:on), файл classes.jsa отображается в память. Этот файл содержит ряд классов (перечисленных в файле classlist) во внутреннем представлении, подходящих для точной конфигурации компьютера, на котором он работает. Идея состоит в том, что классы могут быть загружены быстро, ускоряя запуск JVM. Вскоре будет поражен незанятый класс, и нужно будет открыть rt.jar, а классы загрузить как обычно.

Справка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...