String str 与 String str=new String("") 区别
2014-12-24 10:32
483 查看
1.当使用String str="abc",这种方式时,先去内存的Heap中找是否存在"abc"这个字符串,若存在,则将地址引用。若不存在则创建。
2.当使用String str=new String("abc");时,不管事先是否存在"abc",每次都会创建其新的对象。
测试一下:
String s1="abc";
String s2="abc";
String s3=new String("abc");
String s4=new String("abc");
System.out.println(s1 == s2);
System.out.println(s2 == s3);
System.out.println(s1 == s3);
System.out.println(s4 == s3);
打印的结果为:
true
false
false
false
为什么呢?
参看以上两点可知,s1,s2引用的是相同的地址,故为true
s3又创建了一个新的"abc"对象,故为false
2.当使用String str=new String("abc");时,不管事先是否存在"abc",每次都会创建其新的对象。
测试一下:
String s1="abc";
String s2="abc";
String s3=new String("abc");
String s4=new String("abc");
System.out.println(s1 == s2);
System.out.println(s2 == s3);
System.out.println(s1 == s3);
System.out.println(s4 == s3);
打印的结果为:
true
false
false
false
为什么呢?
参看以上两点可知,s1,s2引用的是相同的地址,故为true
s3又创建了一个新的"abc"对象,故为false
相关文章推荐
- String str 与 String str=new String("") 区别
- String str="abc" 与 String str = new String("abc")区别
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- "int i=1" "int i=new int() "和“String str = "a";” “String str = new String("a")”区别以及c#值类型和引用类型
- Java的内存机制 String str = "abc" 和String str = new String("abc")的区别
- String str = null、String str = ""、String str = new String()中所声明对象str之间的区别:
- String str="abc"和String str=new String("abc")区别
- 【java】 String str = "test"; 与 String str = new String("test"); 的区别
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- String str = "hello"; 与 String str = new String("hello"); 有什么区别?
- String str;System.out.println(str);与String str = new String();System.out.println(str);区别
- 关于String str="abc"与String str= new String("abc")区别
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- String str="abc"和String str=new String("abc")的区别
- String str = new String("abc")和String str = "abc"区别
- String str=new String("a")和String str = "a"有什么区别?
- String str=new String("x"); 和String str="x"的区别
- 经典String str = new String("abc")内存分配问题
- String str = new String("abc")的问题?
- Java编码转换问题,new String(str.getByts("ISO8859-1"), "GBK")的作用