Tôi đã tìm thấy một điều khá lạ đối với tôi khi làm việc với Java. Có lẽ đó là một điều bình thường, nhưng tôi không hiểu tại sao nó hoạt động theo cách này.Java. Tại sao nó hoạt động khác với các ký tự tiếng Anh và tiếng lóng?
Tôi có một mã như thế này:
Character x = 'B';
Object o = x;
System.out.println(o == 'B');
Nó hoạt động tốt và đầu ra là "true". Sau đó, tôi thay đổi tiếng Anh B thành slavic B (Б):
Character x = 'Б';
Object o = x;
System.out.println(o == 'Б');
Bây giờ đầu ra là "sai". Làm thế nào mà? Bằng cách này, đầu ra vẫn là "true" nếu tôi so sánh biến x với 'Б' trực tiếp, nhưng khi tôi làm điều đó thông qua một Object nó hoạt động khác nhau.
Bất kỳ ai, vui lòng giải thích hành vi này?