Là một người mới bắt đầu java, tôi muốn hỏi về liệu tôi có nên đặt một tham chiếu đối tượng thành null hay gọi phương thức hoàn thiện trong một dự án lớn không?Đặt tham chiếu đối tượng thành null hoặc gọi phương thức finalize()?
Ví dụ,
while(obj... some code here){
//code stuff
}
obj = null; // or obj.finalize();
Kể từ khi im thực hiện với sự obj
và không có nhiều tài liệu tham khảo để nó những gì tôi nên làm gì với nó? đặt nó thành null hoặc gọi finalize() ;?
Tôi đọc số java doc nhưng đoạn này The finalize method is never invoked more than once by a Java virtual machine for any given object.
nhầm lẫn tôi. Điều đó có nghĩa rằng ngay cả khi tôi sử dụng nó, nó sẽ không làm bất cứ điều gì ở tất cả trừ khi GC quyết định làm như vậy? Sau đó, quyết định của tôi là đặt obj
thành trợ giúp null có được không?
Tất cả điều này giả định một dự án lớn của nó và phạm vi vẫn chưa kết thúc để GC tự giải quyết nó. Cảm ơn.
Điều này có thể giúp hiểu rõ phương thức 'finalize' và GC: http://stackoverflow.com/questions/2506488/when-is-the-finalize-method-called-in-java – wassgren
Cảm ơn bạn đã trả lời wassgren, tôi đã đọc các tài liệu java như đã nêu. Nhưng có những giải pháp được đưa ra như [this] (http://howtodoinjava.com/2012/10/31/why-not-to-use-finalize-method-in-java/) đã buộc phương pháp finallize và thực sự hoạt động, và tôi đã tự hỏi bạn nên làm gì trên một dự án lớn. – Voqus
Không bao giờ sử dụng ** hoàn thành ** phương pháp. Nó là hoàn toàn không thể đoán trước. –