Trường hợp đầu tiên là một chuỗi chữ , chỉ cần một viết tắt ngôn ngữ cung cấp cho bạn để tạo ra một chuỗi. Trình tạo lớp String vẫn được gọi, không rõ ràng, có nghĩa là ít đánh máy hơn và ít lộn xộn hơn.
Trường hợp thứ hai lấy đối tượng String đã được tạo bởi chữ và chuyển nó tới một hàm tạo, sao chép nội dung để tạo một đối tượng String mới, riêng biệt. Các chữ sẽ vẫn được xung quanh bởi vì literals được interned. Có rất ít điểm để sử dụng hàm tạo String (khá nhiều khi bạn đã tạo một chuỗi con của một chuỗi rất lớn và muốn giải phóng bộ nhớ được sử dụng bởi phần còn lại của chuỗi, bởi vì các giá trị mặc định sử dụng cùng char mảng cơ bản là chuỗi gốc, chỉ với một offset và độ dài khác nhau.
Nguồn
2012-06-23 23:24:05
thể trùng lặp của [sự khác biệt giữa "văn bản" và new String ("text") là gì trong Java?] (http://stackoverflow.com/questions/3052442/what-is-the-difference-between-text-and-new-stringtext-in-java). (Một khi bạn hiểu sự khác biệt giữa hai hình thức, rõ ràng là tại sao đầu tiên được ưa thích ... trong hầu hết các trường hợp.) –