Trái lại, ngay khi một thời gian chạy Java đã khởi động và ứng dụng ở trong trạng thái ổn định, nó có thể tiếp tục hoạt động với vùng heap riêng đã cạn hết. Không nhất thiết phải chỉ ra bất kỳ hành vi xấu nào, bởi vì các hành động đòi hỏi cấp phát bộ nhớ riêng hiếm xảy ra hơn nhiều so với các hành động đòi hỏi cấp phát vùng heap Java. Mặc dù các hành động yêu cầu bộ nhớ riêng thay đổi tùy theo việc triển khai thực hiện JVM, nhưng sau đây là một số ví dụ phổ biến: bắt đầu một luồng, nạp một lớp và thực hiện một số loại I/O mạng và tệp.
Hành vi thiếu bộ nhớ riêng cũng ít nhất quán hơn so với các hành vi thiếu bộ nhớ của vùng heap Java, vì không có điểm kiểm soát duy nhất với các việc cấp phát vùng heap riêng. Trong khi tất cả các việc cấp phát vùng heap Java nằm dưới sự kiểm soát của hệ thống quản lý bộ nhớ Java, thì bất kỳ mã riêng nào — cho dù nó ở bên trong JVM, các thư viện lớp Java hoặc mã ứng dụng — có thể thực hiện một việc cấp phát bộ nhớ riêng và bị thất bại. Sau đó, mã cố gắng thực hiện việc cấp phát ấy có thể xử lý nó như người thiết kế muốn: nó có thể đưa ra một lỗi OutOfMemoryError thông qua giao diện JNI, in một thông báo trên màn hình, hay âm thầm không chạy nữa và thử làm lại sau hoặc làm cái gì đó khác.
Việc thiếu một hành vị dự tính trước có nghĩa là không có một cách đơn giản nào để nhận biết sự cạn kiệt bộ nhớ riêng. Thay vào đó, bạn cần phải sử dụng dữ liệu từ hệ điều hành và từ thời gian chạy Java để xác định chẩn đoán đó.
Phần tiếp theo: Ví dụ thiếu bộ nhớ riêng
- WWW - 25 năm thay đổi thế giới
- Chưa dám dùng phần mềm nguồn mở vì thiếu người hỗ trợ
- 5 hiểu lầm dai dẳng nhất về Android
- Nhìn lại quá trình “tiến hóa” của Windows
- Xu hướng mới trong lập trình phần mềm: Giao tiếp trong kiến trúc Module
- Loại bỏ hạn chế: Đổi sang 64-bit
- Các cách tiếp cận và các kỹ thuật gỡ lỗi
- Ví dụ thiếu bộ nhớ riêng
- Thời gian chạy của Java sử dụng bộ nhớ riêng như thế nào
- Bộ nhớ riêng trong JVM (JAVA)
- Cảm ơn bộ nhớ - Hiểu cách JVM sử dụng bộ nhớ riêng trên Windows và Linux như thế nào
- Java developers get .Net data link
- Java's security architecture (phần 5)
- Java's security architecture (phần 4)
- Java's security architecture (phần 3)
- Java's security architecture (phần 2)