Nếu tôi không nhầm, ArrayList chứa giá trị của các vị trí bộ nhớ trong đó các biến mà bạn đã thêm vào Danh sách được lưu trữ. Vì vậy, giả thiết của tôi là khi bạn gọi phương thức ArrayList.clear() nó chỉ giải phóng các giá trị nói trên (của các vị trí bộ nhớ) nhưng không giải phóng các vị trí bộ nhớ đó. Tôi sẽ cố gắng để minh họa điều này bằng một ví dụ:Phương thức ArrayList.clear() có giải phóng bộ nhớ không?
Hãy nói rằng bạn đã có tình trạng hiện tại của bộ nhớ:
[Memory location] (type of variable) *value*
[1000] (int) 32
[1002] (int) 12
[1003] (float) 2.5
Và bạn thêm chúng vào danh sách myList, vì vậy nó có chứa con trỏ đến 1000, 1002, 1003 vị trí bộ nhớ.
Khi bạn gọi myList.clear() các con trỏ sẽ bị vô hiệu hóa, nhưng các vị trí bộ nhớ 1000, 1002, 1003 sẽ vẫn chứa các giá trị đã cho trước đó. Liệu tôi có sai?
http://stackoverflow.com/questions/6757868/map-clear-vs-new-map-which-one-will-be-better có thể giúp bạn –
Lưu ý rằng 'ArrayList' không bao giờ chứa nguyên thủy như 'int', nhưng các đối tượng như' Integer'. Điều này kết thúc là khá quan trọng đối với câu trả lời. –