В чем преимущество создания файла Jasmin j над исходным файлом Java?
Файл.j преобразуется в файл.class, а файл.java преобразуется в файл.class. Так
Почему я выберу Жасмин вместо Javac? Есть ли какие-либо затраты на производительность? Или по любой другой причине, предпочитающей Жасмин.
2 ответа
Формат Жасмин более низкоуровневый. Например, когда вы компилируете файл.java, вы не можете получить некоторые последовательности байтовых кодов, которые вы можете получить с помощью файла.j.
Таким образом, генерируя файл.j, вы получаете больше свободы
С веб-страницы проекта Jasmin:
Жасмин изначально был создан как компаньон к книге "Виртуальная машина Java"
Jasmin не был написан с целью создания производственных Java-приложений, Jasmin в основном используется в образовательных целях. В общем, вы правы в том, что вы можете выразить любое Java-приложение в виде исходного кода Java, который затем компилируется в байт-код Java. Кроме того, ни один язык JVM, такой как Scala или Groovy, не может создавать другой байт-код. Но иногда они могут выражать один и тот же байт-код другим, более понятным для человека способом.
Жасмин построена с той же идеей. Если вы хотите узнать, как работает виртуальная машина Java, вам нужно немного поиграть. Таким образом, имеет смысл выражать Java-класс в более сырой манере, чтобы вы могли понять концепции структурированного Java-класса. Тем не менее, формат Jasmin все еще более высокоуровневый, чем формат байтового кода. Например, вам не нужно управлять постоянным пулом. Ты можешь написать:
ldc "Hello World"
вместо загрузки значения из индекса после добавления Hello World
строка в константный пул класса. Последнее довольно скучно, и Жасмин справится с этим за вас. Таким образом, используйте жасмин для обучения. Не для написания реального кода. Вы не сможете получить производительность с помощью Jasmin. Байт-код является временным форматом, и скорость Java-приложения увеличивается с помощью своевременного компилятора JVM, который интерпретирует байт-код и ускоряет его. Написав свои собственные инструкции Jasmin, вы можете даже потерять производительность, потому что своевременный компилятор не распознает ваши шаблоны. Но опять же, Жасмин не предназначена для этого. Жасмин для обучения.