tôi chạy chương trình sau đây,Java String vấn đề
String firstString = "String";
String secondString = "String";
String thirdString = new String("String");
System.out.println(firstString == secondString);
System.out.println(firstString == thirdString);
System.out.println(firstString.intern() == thirdString);
System.out.println(firstString.intern() == thirdString.intern());
System.out.println(firstString.intern().equals(thirdString.intern()));
System.out.println(firstString == thirdString);
và đầu ra của tôi là
true
false
false
true
true
false
Tôi đã học được rằng hồ JVM chuỗi với cùng một nội dung như cùng một chuỗi. Có đúng không? Nếu đó là sự thật thì tại sao không phải là firstString == thirdString trả về false? Có jvm chỉ bơi chuỗi chỉ được khởi tạo với: "" và không phải với toán tử mới?
Hãy thử thêm: 'firstString == thirdString.intern()', để thấy rằng các chuỗi ký tự chuỗi được tự động nội bộ hóa. –