Trong bytecode java tại sao người nhận được đẩy lên ngăn xếp trước tiên theo sau là tất cả các tham số? Tôi dường như nhớ nó là một cái gì đó để làm với hiệu quả.Thứ tự mã Java của thứ tự này và các thông số trên ngăn xếp
Điều này đúng cho cả hai cuộc gọi phương thức và trường cài đặt.
Method Gọi
class X {
int p(int a) {
//Do something
}
int main() {
int ret = p(1);
}
}
phương thức Main biên dịch để:
aload_0 // Load this onto the stack
iconst_1 // Load constant 1 onto the stack
invokevirtual <int p(int)> from class X
Thiết lập một lĩnh vực:
class X {
int x;
int main() {
x = 1;
}
}
phương thức Main biên dịch để:
aload_0 // Load this onto the stack
iconst_1 // Load constant 1 onto the stack
putfield <int x> from class X
Hãy suy nghĩ tôi đã tìm ra nhưng tôi không thể trả lời vì tôi không có đủ điểm! –
Đây là một trong những câu hỏi "sự tò mò nhàn rỗi" đó. Thú vị, nhưng câu trả lời là không sử dụng thực tế ... trừ khi bạn đang dự tính thiết kế một bộ hướng dẫn bytecode hoàn toàn mới. –
điểm của bạn là? Học cách máy tính hoạt động như thế nào là một câu hỏi "tò mò nhàn rỗi" nhất. –