Đi qua một số bản trình bày, tôi đã đi qua xác nhận quyền sở hữu sau đây: Khi JVM tải một lớp, nó có thể phân tích nội dung của nó và đảm bảo không có tràn hoặc tràn của toán hạng ngăn xếp. Tôi đã tìm thấy a lot of sources thực hiện xác nhận quyền sở hữu tương tự nhưng không xác định cách thực hiện.Làm thế nào để JVM xác minh không có tràn bộ đệm toán hạng tiềm năng khi tải một lớp?
Tôi không rõ ràng cách xác minh đó có thể được thực hiện bằng cách sử dụng phân tích tĩnh. Giả sử tôi có một phương thức (độc hại) nhận giá trị như một đối số và sử dụng nó để thực hiện một loạt các pop. Tại thời gian tải, số lần lặp lại không được biết, vì nó phụ thuộc vào đối số được đưa ra bởi người gọi của phương thức. Vì vậy, có vẻ như với tôi rằng chỉ trong thời gian chạy, nó có thể được xác định xem sẽ có một dòng chảy hay không. Tôi đang thiếu gì ở đây?
Trình xác thực có thể từ chối mọi nỗ lực bật trong vòng lặp. –
@MarkoTopolnik, tôi đã sử dụng 'pop' làm ví dụ rõ ràng nhất. Các lệnh popping khác cũng có thể được sử dụng, chẳng hạn như 'store's khác nhau. – eran
OK, vậy bạn có thấy bất kỳ trường hợp hợp pháp nào mà mã sẽ vượt quá số lần bật (bằng bất kỳ lệnh nào) liên quan đến các bước đẩy trong vòng lặp không? –