Хорошие программисты Java JVM структура доля, основная структура JVM, то есть, мы назвали Обзор. Много содержания, но и большое количество понятий, на концепции уважения, пусть концепции в графики в вашем сознании, до тех пор , пока у вас есть терпение , осторожность , играть свое собственное воображение, оно сделает вас полно веры сердца . Конечно, нельзя сказать , что после прочтения его для JVM понять это , очень много обучения Jvm знаний. В вашем чтении, мы будем следить , чтобы узнать подробности о JVM, но если вы читали вниз предпосылку исследования, чтобы узнать другие подробности будут JVM более эффективными.
1. Что такое виртуальная машина Java
Сначала мы напишем класс
Затем откройте CMD окно, введите: Java test.JVMForJava, откройте диспетчер задач - процесс, вы видите программу под названием java.exe нет, да, это виртуальная машина Java, Java ххх Эта команда используется для запуска Java Virtual машина, в то время как основная функция входа является приложением Java, когда основная функция выполняются, виртуальная машина Java началась. Ну CTRL + C , чтобы закончить JVM. Откройте ecplise, приложение правой кнопкой запуска, а затем запустить приложение снова открыть диспетчер задач - процесс, хорошо, мы увидим два javaw.exe, почему там два? Потому что мы просто запустить дважды запустить приложение. Я здесь , чтобы сказать вам, приложение Java соответствует java.exe / javaw.exe (java.exe и javaw.exe вы можете думать о нем , как виртуальная машина Java, есть окно интерфейса без него ). Вы запускаете несколько приложений есть несколько java.exe / javaw.exe. Или более конкретно, вы запускаете несколько основных функций будет начать несколько Java - приложений, а также запустила несколько виртуальных машин Java.
Что такое Java экземпляры виртуальных машин и виртуальных машин? виртуальная машина Java эквивалентна одному из наших классов Java, Java виртуальных экземпляров машины, мы совершенно новый класс Java, но виртуальная машина Java , но не запускать виртуальную машину java.exe или javaw.exe по новым ключевым словам экземпляр.
2, жизненный цикл виртуальной машины Java
(1) слово не говорит , взглянуть на код, а затем после применения в открытом ecplise Task Manager , в перспективе - процесс, вы увидите javaw.exe работающую виртуальную машину, просмотреть вывод на консоль, и наблюдать диспетчер задач javaw.exe исчезли.
(Я не буду приводить выстрелы, и слишком долго.)
Если вы посмотрите на консоль и диспетчер задач javaw.exe обнаружит , что , когда основная функция для печати цикла закончена, я хочу программировать его не то же самое , как на самом деле не бросить курить, но не ждать , пока весь новый Thread () в анонимном классе после запуска метода запуска, javaw.exe единственного выхода. Мы знаем , что в win32 программировании C ++ 's (CreatThread ()), основное выполнение функции заканчивается, посадочная нить также вытащила, и в C # , если вы используете пул потоков (ThreadPool), то вывод верно, потоки следует в конце процесса хостинга и конец. Но в Java выглядит как и наши знания очень разные, как это происходит, не смотреть на результаты первого думать почему.
Да , это связано с виртуальной машины Java, он имеет две темы , а Jiaojiao демон потоки, называемые не-демон нить , основной функцией является не-демон потоки , виртуальные машины дс является демон нить . виртуальная машина Java, до тех пор , пока существует какой - либо не-демон нить еще не закончена, примеры виртуальная машина Java не будет бросить курить, даже если основная функция этого не-демон нить выходит, но в связи с началом основной функции потока является анонимным , не демон поток, она не закончена, поэтому никакого способа выхода JVM.
Java виртуальная машина жизненного цикла, когда основная функция приложения Java также начать виртуальная машина запущена, и только тогда, когда все не демон экземпляр виртуальной машины закончена, ява экземпляры виртуальных машин до конца жизни.