String str=new String("aaa")
String str="aaa"
问:各自创建了几个java对象?
String str=“aaa”创建了一个String对象。对象的值是aaa
String str=new String(“aaa”)则创建了2个String对象。相当于 String tmp=new String(); String str=new String(); tmp=“aaa” str=tmp;
String a = "aaa"; 用这种方式的时候java首先在内存中寻找"aaa"字符串,如果有,就把aaa的地址给它 如果没有则创建 String a = new String("aaa"); 是不管内存中有没有"aaa" 都开辟一块新内存保存它 可以用以下方法验证下 String a = "aaa"; String b = "aaa"; String c = new String("aaa"); System.out.println(a==b); System.out.println(a==c); 结果应该是: true false