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 gọi hàm ở runtime trong một Thread java. bài viết này SieuTocViet sẽ giải thích cụ thể nhất sự khác nhau của bộ nhớ heap và stack trong java, cũng giống như sự tương tác mới 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ỏ sẵn sàng mới 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 để mới trong suốt (transparent) với code viên. lập trình mới viên không nên 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, tiềm ẩn nhất nắm tới thời kì nhất sống ngắn. cho dù nhất khi nào tìm đến nhất 1 hàm, một khối bộ nhớ mới sẽ được tạo trong Stack đưa cho hàm đó để lưu các biến local. Khi hàm làm xong, khối bộ nhớ cho hàm sẽ bị xoá, và giải phóng bộ nhớ trong stack. Trong Java sở hữu mới 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
Types of memory in javaMột tiến trình chạy ngầm gọ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 nắm tới tham chiếu. JVM quyết định khi nào thực hiện mới thu gom rác: Thông năng lực cao sẽ thực thi khi thiếu bộ nhớ tại thời điểm Bất kì, không thể ngăn giai đoạn thực hiện nhất của bộ thu gom rác nhưng sở hữu mới lẽ yêu cầu làm 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 công đoạn thu gom xảy ra. thường xuyên nhất chỉ chuyên dụng tặng nhất các trường hợp đặc trưng mới để“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ụ nên đóng các socket, file,... cần được xử lý trong luồng chính trước khi các đối tượng bị ngắt bỏ tham chiếu.

5/5 - (1 vote)

Types of memories in java - Hướng dẫn thiết lập bộ nhớ trong java

Nguyễn Thanh Tuấn (sieutocviet.com)

Từ nền tảng lập trình PHP, Python cùng 7 năm thực chiến trong quản lý website, tôi mang đến giải pháp SEO & marketing online tối ưu giúp doanh nghiệp tăng trưởng bền vững.