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