Bất kỳ cơ thể nào có thể giải thích cho tôi điều gì đang xảy ra trong đầu ra. Nếu == được sử dụng để so sánh hai ref. biến nó chỉ đơn giản là kiểm tra tham chiếu của nó nếu chúng giống nhau thì nó nhập vào nếu nội dung, thì tại sao địa ngục aa == bb bằng nhau nếu phương thức tĩnh valueOf() và ee == ff không bằng (nếu được) nếu tạo đối tượng của nó bằng cách sử dụng từ khóa mới?operator == hành vi differet trên đối tượng lớp bao bọc
static void main(String args[])
{
Integer aa = Integer.valueOf("12");
Integer bb = Integer.valueOf("12");
if(aa==bb)System.out.println("aa==bb");
if(aa!=bb)System.out.println("aa!=bb");
Integer ee = new Integer("12");
Integer ff = new Integer("12");
if(ee==ff)System.out.println("ee==ff");
if(ee!=ff)System.out.println("ee!=ff");
}
Output:
aa == bb
ee = ff
Một bài viết thú vị mô tả sự cố của bạn: http://tech.puredanger.com/2007/02/01/valueof/ –