Nếu tôi có:Bộ thu gom rác của Java có tiếp tục và xử lý các biến được khai báo trong vòng không?
for (int i; i != 100; i++) {
ArrayList<String> myList = buildList();
//... more work here
}
Tôi có phải thiết lập myList để null vào cuối vòng lặp của tôi để có được những GC để đòi lại bộ nhớ nó sử dụng cho myList?
Tôi nghĩ rằng anh ta lo lắng hơn rằng các đối tượng được gán cho 'myList' trong các vòng lặp trước đó của vòng lặp sẽ được GC'd, ngay cả khi vẫn còn trong vòng lặp. Không phải sau vòng lặp. –
Điểm tốt, tôi đã cập nhật câu trả lời để giải quyết vấn đề đó. –
Tôi không biết câu trả lời này có đủ hay không. Đầu tiên, các số nguyên và các loại giá trị khác được phân bổ trên ngăn xếp và không có gì để làm với bộ sưu tập rác. Thứ hai, myList có thể hoặc có thể không đủ điều kiện để thu gom rác; nó phụ thuộc vào việc liệu một tham chiếu khác có được lưu trữ ở đâu đó trong mã của bạn hay không. –