Dạ e có một thắc mắc muốn hỏi mn ạ, nếu dùng toán tử == để so sánh 2 string trong TH này thì sẽ ra false, mà e kiểm tra kiểu dữ liệu thì chúng cùng kiểu String, e tìm hiểu qua lớp thì thấy rằng dùng new String() là tạo ra 1 đối tượng và biến đó là con trỏ trỏ vào đối tượng đó, nhưng lớp như String thì có 2 cách tạo là dùng new String và gán với toán tử “=”, mọi người có thể giải thích cho e sự khác nhau giữa 2 cách tạo này và tại sao khi so sánh với “==” thì chúng khác nhau đc ko ạ, và với các lớp mình tự tạo thì đều dùng new Obj() để tạo đối tượng mới, vậy tại sao String cũng là 1 lớp lại có 2 cách tạo ạ, kiến thức của e chưa vững nên nói gì sai xin mn chỉ bảo ạ.
Em cảm ơn !
String s1, s2;
s2 = new String(scan.nextLine());
s1 = scan.nextLine();
System.out.println("instance: " + s1 instanceof String);
System.out.println("instance: " + s2 instanceof String);
System.out.println(s2 == s1);