Механизм кота - PullRequest
       12

Механизм кота

0 голосов
/ 22 марта 2010

Это структура загрузчика tomcat:

      Bootstrap
          |
       System
          |
       Common
       /     \
  Webapp1   Webapp2 ... 

Мой вопрос: как на самом деле работают загрузчики?

Загружают ли они все классы при запуске tomcat, даже когда нет запроса?

Или они загружают необходимые классы при поступлении запроса?

А как насчет жизненного цикла загруженных классов?

1 Ответ

1 голос
/ 22 марта 2010

Они загружают все классы, когда tomcat запускается, даже когда нет просить?

Ответ может быть. Используемая стратегия зависит от вашей реализации JVM. Чаще всего классы загружаются только тогда, когда они необходимы.

Или они загружают необходимые классы, когда запрос приходит?

Опять же, это зависит от стратегии загрузчика классов вашей JVM. Вообще говоря, хотя классы загружаются только тогда, когда они необходимы. Например, если для запроса 1 не нужен класс Foo, а для запроса 2 это необходимо, класс будет загружен только во время запроса 2.

А как насчет жизненного цикла загруженные классы?

Экземпляры классов следуют обычным правилам сборки мусора, поэтому они удаляются, когда на них больше нет ссылок. Что касается самих классов, я не совсем уверен. Я полагаю, что они следуют похожему шаблону, то есть, если не осталось экземпляров класса и JVM требуется больше памяти, они выгружают класс.

...