Недавно я смотрел на Java Virtual Machine Specifications (JVMS), чтобы лучше понять, что заставляет мои программы работать, но я нашел раздел, который я не совсем понимаю...
Раздел 4.7.4 описывает атрибут StackMapTable, и в этом разделе документ подробно описывает кадры карты стека. Проблема в том, что она немного многословна, и я лучше всего научился примеру; не путем чтения.
Я понимаю, что первый кадр карты стека получается из дескриптора метода, но я не понимаю, как это (якобы объясняется здесь.) Кроме того, я не совсем понимаю, что делают кадры карты стека. Я бы предположил, что они похожи на блоки в Java, но кажется, что у вас не может быть фреймов кадров кадров внутри друг друга.
Во всяком случае, у меня есть два конкретных вопроса:
- Что делают кадры карты стека?
- Как создается первый кадр карты стека?
и один общий вопрос:
- Может ли кто-нибудь дать объяснение менее многословным и понятным, чем тот, который задан в JVMS?