Chuỗi s = "";
không tạo đối tượng nào.
s + = new String ("a");
tạo năm đối tượng. các new String
, StringBuilder và char [] của nó và Chuỗi kết quả và char của nó []
s + = "b";
tạo ra bốn đối tượng, StringBuilder và char của nó [] và Chuỗi kết quả và char của nó []
Vì vậy, tôi có được một tổng số chín đối tượng trong số đó là ba chuỗi các đối tượng
Lưu ý: Bạn có thể chắc chắn rằng "" đã được nạp như nó xuất hiện trong nhiều lớp hệ thống bao gồm ClassLoader và Class.
Các chuỗi "a" và "b" có thể hoặc không được coi là chuỗi mới cho mục đích của câu hỏi này. IMHO Tôi sẽ không tính chúng vì chúng sẽ chỉ được tạo ra nhiều nhất một lần và nếu mã này chỉ chạy một lần, nó hầu như không quan trọng có bao nhiêu chuỗi được tạo ra. Có nhiều khả năng hữu ích hơn là biết có bao nhiêu đối tượng được tạo mỗi khi mã được chạy.
Nguồn
2012-06-24 20:21:01
'b' là gì? Chúng tôi không thể trả lời câu hỏi của bạn mà không biết điều đó. –
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#String%28java.lang.String%29 –