Có cho câu hỏi đầu tiên và không cho câu hỏi thứ hai; nó là một máy ảo. Sự cố của bạn có thể liên quan đến những thay đổi không xác định trong việc triển khai thư viện giữa các phiên bản. Mặc dù nó có thể là một điều kiện chủng tộc.
Có một số vòng lặp mà máy ảo phải trải qua. Đáng chú ý là các tham chiếu được xử lý trong các tệp lớp như thể chúng chiếm cùng một không gian như int
s trên ngăn xếp. double
và long
chiếm hai khe tham chiếu. Đối với các trường ví dụ, vẫn có một số sắp xếp lại mà máy ảo thường trải qua. Tất cả đều được thực hiện (tương đối) một cách minh bạch.
Ngoài ra, một số JVM 64-bit sử dụng "oops nén". Bởi vì dữ liệu được căn chỉnh thành khoảng 8 hoặc 16 byte, ba hoặc bốn bit của địa chỉ là vô dụng (mặc dù một bit "mark" có thể bị đánh cắp đối với một số thuật toán). Điều này cho phép dữ liệu địa chỉ 32 bit (do đó sử dụng băng thông bằng một nửa và do đó nhanh hơn) sử dụng kích thước heap 35 hoặc 36 bit trên nền tảng 64 bit.