Tôi so sánh 2 đoạn mã. Đầu tiênSố nguyên i = 3 và Số nguyên i = Số nguyên mới (3)
Integer i=3;
Integer j=3;
if(i==j)
System.out.println("i==j"); //prints i==j
Thứ hai,
Integer i=3;
Integer j=new Integer(3);
if(i==j)
System.out.println("i==j"); // does not print
Tôi đã nghi ngờ rằng trong đoạn đầu tiên tại sao i==j
đang được in? Các tham chiếu có khác nhau không?
Một số việc cần làm với refernece, new, Objects, compairing memory addresses #Idk # CIS20 ... Somthing –
'==' so sánh tham chiếu không phải giá trị khi bạn gán. Trong trường hợp nắm tay cả hai 'i',' j' trỏ đến cùng số nguyên trong bộ nhớ. trong trường hợp thứ hai sử dụng mới, bạn tạo hai thể hiện mới của số nguyên đối tượng có cùng giá trị 3. –
Đây không phải là bản sao của câu hỏi được liên kết. Lưu ý rằng câu hỏi đã được đóng lại như là một "câu hỏi không thực sự" do một tiền đề sai lầm rằng 'new Integer (1) == new Integer (1)', điều đó không đúng. –