Ответ 1
Это называется Class Data Sharing
, как описано здесь; это работает только для Client VM
.
В основном это способ ускорить время запуска виртуальной машины - анализируемые классы хранятся в файле, а когда начинается виртуальная машина, он просто считывает этот файл (с уже скомпилированными классами), он также может совместно использовать другие запущенные виртуальные машины.
Строка shared
будет содержать файл jre\bin\client\classes.jsa
, а другой - нет.
Так как java-8 вы можете добавить свои собственные классы в этот файл - если я правильно помню, и собственный код (а не байтовый код) будет доступен для захватов.
Я не использовал Client VM с этой поддержкой - просто прочитайте об этом.