
1
Chương
Chương 13
13
B
Bộ
ộthu
thu gom
gom r
rá
ác
cv
và
à
x
xử
ửlý
lý t
tà
ài
inguyên
nguyên
Nguy
Nguyễ
ễn
nH
Hồ
ồng
ng Phương
Phương
Khoa
Khoa CNTT
CNTT,
, ĐHBKHN
ĐHBKHN

2
S
Sự
ựthu
thu gom
gom r
rá
ác
c
• Garbage Collection
•NgônngữC# phân biệtgiátrịvà đối
tượng.
•So sánhgiátrịvà đốitượng:
–Mộtgiátrịlà mộtthểhiệncủakiểugiá
trị, mộtđốitượng là 1 thểhiệncủakiểu
tham chiếu. Ví dụ:
int i = 42; // I là mộtgiátrị
TextBox box = neưTextBox();// box tham chiếutới1 đốitượng

3
So sánh giá trịvà đốitượng (tiếp)
•Vòngđờicủa1 giátrịbịbuộcvào
phạm vi mà nó khai báo, vòng đời
của1 đốitượng thì không.
{
int i = 42;
TextBox box = newTextBox();
} // i kết thúc vòng đờitạiđây nhưng box vẫntồntại
•Giátrịcó vòng đời đặc trưng rất ngắn
trong khi đối tượng có vòng đời đặc
trưng rất dài.

4
Vòng đ
Vòng đờ
ời v
i và
àth
thờ
ời gian c
i gian củ
ủa m
a mộ
ột đ
t đố
ối tư
i tượ
ợng
ng
•Bạn tạo 1 đối tượng như sau: new
TextBox();
•Việc tạo 1 đối tượng qua 2 giai đoạn:
–cấp phát một vùng nhớthô từHeap
(thực hiện điều này bằng cách dùng từ
khóa new).
–chuyển đổi vùng nhớthô này thành 1
đối tượng-bạn phải khởi tạo đối tượng
(thực hiện điều này bằng cách dùng
phương thức khởi tạo)

5
Vòng đ
Vòng đờ
ời v
i và
àth
thờ
ời gian c
i gian củ
ủa m
a mộ
ột đ
t đố
ối tư
i tượ
ợng
ng
• Thông thường khởi tạo 1 đối tượng khi tạo
biến tham chiếu:
TextBox message = new TextBox();
•Tham chiếu đến các thuộc tính của đối tượng
này bằng cách dùng toán tửdấu chấm(.):
message.Text = “Bonjour Vietnam”;
•Sựkết thúc của 1 đối tượng cũng là 1 quá
trình có 2 giai đoạn ngược với 2 giai đoạn tạo
đối tượng:
–chuyển đối tượng trởlại thành vùng nhớthô (thực
hiện điều này bằng cách dùng phương thức hủy)
– vùng nhớ thô đó được chuyển cho vùng Heap
• Quá trình trảlại bộnhớcho Heap-sựthu gom
rác

