Смущает процесс компиляции java
OK Я знаю это: мы пишем исходный код java, компилятор, который независим от платформы, переводит его в байт-код, тогда jvm, который зависит от платформы, переводит его в машинный код.
Итак, с начала, мы пишем исходный код java. Компилятор javac.exe - это .exe файл. Что это за файл .exe? Является ли java-компилятор написанным в java, тогда как это происходит .exe файл, который его выполняет? Если код компилятора написан java, тогда как код компилятора выполняется на этапе компиляции, так как его работа jvm для выполнения Java-кода. Как сам язык может составить собственный код языка? Все это похоже на проблему с курицей и яйцом.
Теперь, что именно содержит файл .class? Это абстрактное синтаксическое дерево в текстовой форме, это табличная информация, что это такое?
может кто-нибудь сказать мне четкий и подробный способ о том, как мой исходный код java преобразуется в машинный код.