Đôi chút về Heap và Stack trong Java

Heap Memory và Stack Memory những khái niêm cơ bản trong Java nhưng nó là kiến thức quan trọng cần nắm vững để có thể sử dụng Java một cách tốt hơn 😀

Heap Memory và Stack Memory đều là bộ nhớ được JVM dùng khi runtime.

Java Heap Memory:

– Là bộ nhớ được sử dụng bất cứ khi nào ở đâu trong chương trình của bạn khi tạo object nó sẽ được lưu trong Heap
– Các object trong Heap đều có thể được truy cập bởi tất cả các nơi trong ứng dụng, bởi các threads khác nhau
– Thời gian sống của object phụ thuộc vào Garbage Collection để xóa nên thời gian tồn tại lâu hơn so với Stack
– Dung lượng Heap thường lớn hơn Stack
– Truy cập vùng nhớ Heap chậm hơn Stack
– Dung lượng Heap sẽ tăng giảm phụ thuộc vào các object sử dụng

Java Stack Memory:

– Là 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
(Các biến local bao gồm các biến nguyên thủy (primitive) và biến tham chiếu đến đối tượng (reference) )
– Bộ nhớ Stack thường nhỏ
– Thường có thời gian sống ngắn theo cơ chế ngăn xếp tức là vào sau chết trước
– Truy cập vùng nhớ Stack nhanh hơn Heap
– Bất cứ khi nào gọi 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 xong, khối bộ nhớ cho hàm sẽ bị xoá, và giải phóng bộ nhớ trong stack.

Hiểu rõ hơn về bộ nhớ Heap và Stack trong Java sẽ giúp ta hiểu cách thức hoạt động lưu trong chương trình xử lí tốt hơn và đồng thời cũng liên quan đến tham chiếu và tham trị trong Java mà tôi sẽ đề cập đến ở bài tiếp theo.

Conal Dev

tham khảo : https://gpcoder.com/2160-quan-ly-bo-nho-trong-java-voi-heap-space-vs-stack/
http://www.journaldev.com/4098/java-heap-space-vs-stack-memory

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook