Комментарии 8
Уже было, гуглится по первой ссылке. Такой же разбор "Hello World" Зачем копия?
https://habr.com/ru/post/264919/
Ну, раз уж вы считаете эту статью копией, то может думать о моей статье, как улучшенной версией (мне так кажется, хотя кому как. Возможно, та статья для кого-то будет понятней). Во всяком случае, советую вам прочитать обе статьи и сравнить уже их контексты, а не названия или темы статей.
Это конечно сугубо мое мнение, просто не понимаю, зачем, видя что на ресурсе уже есть статья с разбором "Hello World", делать разбор "Hello World" другими словами. Ну сделайте вы разбор программы, которая на 2 строчки больше, вопросов бы наверное не было.
Читал обе статьи. Ни в коем случае не пытаюсь Вас обидеть и уж тем более не хочу судить о том, какая лучше, так как это сугубо субъективное мнение. Контекст, как вы выразились, у этих статей как раз идентичен, а вот содержимое действительно отличается. Про копию, я не совсем корректно выразился, за что прошу меня извинить.
Статьи отличаются, но исключительно в контексте оформления. В обоих чуть более человеческое и простая для читателя трактовка документации.
Вот ещё я по теме писал, но только про пул констант. Зато с красивой картинкой!
Вдогонку — Hexing the technical interview
Итак, Java bytecode specification, выраженная на языке Java: github.com/esavin/annotate4j-classfile
Классы, которые умеют это все загружать/выгружать тут: github.com/esavin/annotate4j-core
Несколько раз пытался написать статью тут, но так и не осилил.
All 8-byte constants take up two entries in the constant_pool table of the class
file. If a CONSTANT_Long_info or CONSTANT_Double_info structure is the entry
at index n in the constant_pool table, then the next usable entry in the table is
located at index n+2. The constant_pool index n+1 must be valid but is considered
unusable.
То есть для long и double info в constant pool используется две ячейки, причем во второй — всегда пусто.
Позже это было признано неудачным дизайнерским решением:
In retrospect, making 8-byte constants take two constant pool entries was a poor choice.
Hello World из байт-кода для JVM