2010-12-09 3 views
5

При запуске 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 я нашел у него есть все классы, которые были загружены из общих объектного файла.

ответ

5

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

Ссылка:

+0

Этот ответ, возможно, потребуется привести некоторые источники .... – Pacerier 2014-08-25 02:23:16

Смежные вопросы