Số Java Virtual Machine Specification cho biết rằng có sự hỗ trợ giới hạn đối với các loại nguyên thủy boolean.Tại sao kích thước nguyên thủy boolean của Java không được xác định?
Không có hướng dẫn máy ảo Java nào chỉ dành riêng cho các thao tác trên giá trị boolean. Thay vào đó, các biểu thức trong ngôn ngữ lập trình Java hoạt động trên các giá trị boolean được biên dịch để sử dụng các giá trị của kiểu dữ liệu int máy ảo Java.
Hàm trên có nghĩa là (mặc dù tôi có thể hiểu sai) rằng kiểu dữ liệu int được sử dụng khi hoạt động trên boolean, nhưng đây là cấu trúc bộ nhớ 32 bit. Giả sử boolean chỉ đại diện cho 1 bit thông tin:
- Tại sao byte, hoặc loại ngắn không được sử dụng làm proxy cho boolean thay vì int?
- Đối với bất kỳ JVM nhất định nào là cách đáng tin cậy nhất để tìm ra chính xác số lượng bộ nhớ được sử dụng để lưu trữ một loại boolean?
Bạn có chắc chắn về 1 bit trong một mảng boolean không? –
Tôi tin rằng tôi đã viết "byte". Đó chắc chắn là "byte" ngay bây giờ, mặc dù có thể là bản chỉnh sửa trước đó của tôi đã sử dụng "bit". – kdgregory
Đối với các thành viên lớp boolean/byte, nó cũng đúng, rằng chúng cũng là 4 byte? Ví dụ lớp được phân bổ như một toàn bộ trên ngăn xếp, vì vậy tôi có thể tưởng tượng, JVM có lẽ nên sử dụng 1 byte cho mỗi thành viên boolean/byte và cuối cùng tạo một liên kết 4 byte cho cá thể lớp hoàn chỉnh. Có phải vậy không?(nếu bạn có tài liệu tham khảo chứng minh điều này, xin vui lòng, chia sẻ) –