什么是两者之间的区别?
String str=new String("Thamilan");
并且
String str="Thamilan";
在Java J2ME中。
String s = "abc";
String t = new String("abc");
System.out.println(s==t); //false
String u = "abc";
String v = "abc";
System.out.println(u==v); //true
来自Java字符串声明的答案:
String str = new String("SOME")
总是在堆上创建新对象。
String str="SOME"
使用字符串池
试试这个小例子:
String s1 = new String("hello");
String s2 = "hello";
String s3 = "hello";
System.err.println(s1 == s2);
System.err.println(s2 == s3);
String t = new String("abc");
引用变量t将引用堆上的对象。
String t = "abc";
但是,如果具有相同值的对象不在池中,则语句2仅在字符串常量池中创建一个对象,并且t将引用放置在字符串常量池中的对象。
String s = new String("string");
因为它会创建不必要的字符串对象。但是,应该像这样编写:
String s = "string";