Quản lý bộ nhớ trong Java , định vị, tái định vị và quản lý bộ nhớ. Bộ nhớ để lưu các biến local trong hàm và lời tìm đến nhất hàm ở runtime trong một Thread java. nội dung bài viết mới này SieuTocViet sẽ giải thích chi tiết sự khác nhau của bộ nhớ heap và stack trong java, cũng như là nhất sự liên quan giữa chúng trong công đoạn dùng chạy phần mềm .
Java memories
Types of memory in java
Java không dùng con trỏ cần các địa chỉ bộ nhớ không thể bị ghi đè lên một cách ngẫu nhiên hoặc cố ý. Các vấn đề định vị và tái định vị bộ nhớ, quản lý bộ nhớ do JVM kiểm soát, triệt để nhất trong suốt (transparent) với code viên. lập trình mới viên không sẵn sàng mới quan tâm đến việc ghi dấu các phần bộ nhớ đã cấp phát để giải phóng sau này. Các biến local bao gồm loại nguyên thuỷ (primitive) và loại tham chiếu tới đối tượng trong heap (reference) khai báo trong hàm, hoặc đối số được truyền vào hàm, thường sở hữu nhất thời kì mới sống ngắn. Bất kì khi nào liên hệ 1 hàm, một khối bộ nhớ mới sẽ được tạo trong Stack cho hàm đó để lưu các biến local. Khi hàm thực hiện nhất xong, khối bộ nhớ cho hàm sẽ bị xoá, và giải phóng bộ nhớ trong stack. Trong Java có hai loại bộ nhớ chính
- Bộ nhớ heap: lưu trữ các data được cấp phát cho các tham chiếu
- Bộ nhớ stack: lưu trữ các tham chiếu (~địa chỉ các con trỏ) và các data nguyên thủy

Một tiến trình chạy ngầm tìm đến mới đến bộ “thu gom rác” (garbage collector) để phục hồi lại phần bộ nhớ mà các đối tượng không tham chiếu đến (tái định vị). Các đối tượng không nắm tới tham chiếu đến được gán null. Bộ thu gom rác định kỳ quét qua danh sách các đối tượng của JVM và phục hồi các tài nguyên của các đối tượng không có tham chiếu. JVM quyết định khi nào làm thu gom rác: Thông có lẽ sẽ thực thi khi thiếu bộ nhớ tại thời điểm đưa cho dù mới , không thể ngăn quá trình mới thực hiện nhất của bộ thu gom rác nhưng khả năng cao yêu cầu thực hiện mới sớm hơn: System.gc(); hoặc Runtime.gc(); Lớp nào cũng sở hữu mới phương thức finalize() – được thực thi ngay lập tức khi quá trình nhất thu gom xảy ra. sở hữu mới thể chỉ chuyên dụng đưa cho các trường hợp đặc thù để “tự dọn dẹp” các tài nguyên dùng khi đối tượng được gc giải phóng. Ví dụ cần đóng các socket, file,... sẵn sàng nhất được xử lý trong luồng chính trước khi các đối tượng bị ngắt bỏ tham chiếu.
Nguyễn Ngọc Kiên (sieutocviet.net)
Với hơn 6 năm phát triển web bằng WordPress, PHP, Laravel và kinh nghiệm quản trị website, tôi chuyên tư vấn SEO và chiến lược digital marketing cho doanh nghiệp vừa và lớn.