Câu hỏi phỏng vấn OOP
Câu hỏi

Bạn đã định nghĩa một hàm hủy trong một lớp mà bạn đã phát triển bằng cách sử dụng C#, nhưng hàm hủy đó không bao giờ được thực thi. Tại sao?

Câu trả lời

Trong C#, hàm hủy (destructor) không được đảm bảo là sẽ được thực thi ngay lập tức khi đối tượng không còn được sử dụng nữa. Hàm hủy được gọi bởi bộ thu gom rác (Garbage Collector - GC) của .NET Framework khi nó quyết định thu hồi bộ nhớ của đối tượng không còn tham chiếu. Do đó, việc hủy đối tượng không xảy ra ngay lập tức và có thể bị trì hoãn hoặc không xảy ra nếu chương trình kết thúc trước khi GC kích hoạt quá trình thu gom rác.

Ngoài ra, nếu hàm hủy không được viết đúng cách hoặc nếu có các tham chiếu mạnh (strong reference) vẫn còn tồn tại đến đối tượng, thì GC sẽ không thu hồi đối tượng đó, và do đó hàm hủy sẽ không được thực thi. Để đảm bảo rằng tài nguyên đ...

expert

expert

Gợi ý câu hỏi phỏng vấn

middle

Những điểm giống nhau giữa class và structure là gì?

junior

Trong lập trình OOP, lớp con là gì?

middle

Nêu các đặc điểm của Interface.

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào