Garbage collector in java

- 4 mins

Garbage collector là một công cụ hay phương pháp dùng để giải phóng bộ nhớ khi không còn sử dụng, quản lí tài nguyên hiệu quả. Khi tạo một object, object này sẽ chiếm bộ nhớ RAM, khi object này không còn được sử dụng đến trong chương trình, một phần bộ nhớ trong RAM sẽ bị chiếm dụng, bộ nhớ của RAM liên tục bị chiếm dụng mà không giải phóng cho đến khi RAM không còn đủ dung lượng chương trình sẽ bị dừng.

GC là một thành phần quan trọng để sử dụng quản lí, phát hiện các vấn đề liên quan đến bộ nhớ (memory leak) và tối ưu bộ nhớ hiệu quả.

Java sử dụng memory

alt text

Memory trong java được chia thành 3 vùng:

Ví dụ đoạn code sau:

public void memoryTest() {
	int variable1 = 1;
	TestClass variable2 = TestClass.builder().number(2).build();
	TestClass variable3 = TestClass.builder().number(3).build();
	transformVariables(variable1, variable2, variable3);
	log.info("var1: {}, var2: {}, var3: {}", variable1, variable2.getNumber(), variable3.getNumber());
}

private void transformVariables(int var1, TestClass var2, TestClass var3) {
	var1 = 4;
	var2.setNumber(5);
	var3 = TestClass.builder().number(6).build();
}

Kết quả nhận được sẽ là:

var1: 1, var2: 5, var3: 3

Minh họa ví dụ vừa rồi: alt text

Cấu trúc bộ nhớ trong java

alt text

Java chia bộ nhớ thành các phân vùng để quản lí hiệu quả vòng đời của các object, gồm 3 vùng:

comments powered by Disqus
rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora