可能重复:
使用new运算符&java J2ME中没有新的运算符?
之间的差异
String str=new String("Thamilan");
和
String str="Thamilan";
在java和j2me中,关于内存约束。
您可以通过以下代码计算字符串的内存分配
int NumOfBytes = 8 * (int) ((((no chars) * 2) + 45) / 8) ;
第一个表单每次运行时都会创建一个新的String
对象。第二个表单不会。
这适用于JavaSE和JavaME。事实上,JavaSE和Java ME字符串的基本表示是相同的。
使用new String(...)
几乎总是不必要和浪费的。拥有一个新的实例几乎没有任何意义。所有String
对象在Java中都是不可变的。
(在极少数情况下,建议创建一个新字符串。一种情况是,您获取一个大字符串的子字符串,并且该子字符串的可访问时间可能比原始字符串长得多。(