На основе документации:
Скомпилированный код, который должен выполняться виртуальной машиной Java, представлен в двоичном формате, не зависящем от аппаратного обеспечения и операционной системы, обычно (но не обязательно), хранящемся в файле., известный как формат файла класса.
Как понимать эту строку: typically (but not necessarily).Что это значит?Я могу сохранить что-то вроде my file или hello file, или как?
typically (but not necessarily)
my file
hello file
Это означает, что скомпилированные классы обычно хранятся в файлах, но в некоторых системах они могут храниться другим способом (не в файле).
Например, с базой данных Oracle можно писатьхранимые процедуры в Java.Эти хранимые процедуры будут скомпилированы, но не сохранены в файле класса;вместо этого скомпилированный класс хранится где-то в базе данных.
Ну, это описание.Загрузчик классов может быть настроен на чтение классов из любого потока.Так что если это апплет .. это будет сетевой поток, а не файл
Он может жить в базе данных, а не в файле. (Oracle делает это.) Или, для действительно медленной JVM, сделайте татуировку на ноге хипстера.
Но обычно это файл, заканчивающийся на .class, возможно, заархивированный в банку.
Квалификация «обычно (но не обязательно)» означает, что скомпилированный код не имеет для хранения в файле, хотя обычно будет. Например: класс Java может быть скомпилирован, сохранен и выполнен исключительно в памяти.
Например, он может быть скомпилирован напрямую и выполнен из памяти.
Код может быть в памяти вместо файла.Это будет в конечном итоге, после того, как переводчик загрузит его из файла.