Khi sử dụng một đối tượng nhiều lần, tốt hơn là xóa dữ liệu bằng cách đặt nó thành rỗng, hoặc khởi tạo một đối tượng mới?Hiệu suất Java: Khi xóa một đối tượng, tốt hơn là đặt thành null hoặc tạo đối tượng mới.
Object a = new Object();
for(...){
...
a = null;
**OR**
a = new Object();
}
Dưới đây là ví dụ tôi đề cập đến:
Customer a = new Customer();
Collection<Customer> data = new ArrayList<Customer>();
while (rs != null && rs.next()) {
a = new Customer();
a.setCustId(rs.getLong("CUST_ID"));
a.setPerNo(period);
a.setName(rs.getString("cust_nm"));
if(a!= null)
data.add(a);
}
Tôi đang tự hỏi liệu
a = new Customer();
là cách tốt nhất để làm điều này hoặc nếu nó nên được thực hiện theo cách hiểu của tôi, nếu bạn tạo một khách hàng mới, bạn đang tạo một đối tượng mới và chỉ một đối tượng mới đó. Vì vậy, đối tượng cũ a đã trỏ đến sẽ được chọn bởi bộ thu gom rác - tương tự trong trường hợp thiết lập nó thành null. Đây có phải là một sự hiểu biết chính xác?
Bạn phải tạo khách hàng mới cho mỗi hàng của tập kết quả, nếu không bạn sẽ kết thúc với cùng một đối tượng trong danh sách cùng số lần vì có các hàng trong tập kết quả với các thuộc tính được đặt theo hàng cuối cùng trong tập kết quả. Ngoài ra kiểm tra null là không cần thiết, 'a' không thể rỗng. –
Trừ khi một cái gì đó đang xảy ra giữa 'a.setName' và' if (a! = Null) ', rằng' if (a! = Null) 'kiểm tra là hoàn toàn dư thừa. Nó sẽ * luôn * vượt qua. – CPerkins