java和j2me中的字符串在内存约束方面的区别



可能重复:
使用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中都是不可变的。

(在极少数情况下,建议创建一个新字符串。一种情况是,您获取一个大字符串的子字符串,并且该子字符串的可访问时间可能比原始字符串长得多。(

最新更新