-1

可能重复:
在 java J2ME 中使用 new 运算符和没有 new 运算符分配的字符串有什么区别?

之间的区别

String str=new String("Thamilan");

String str="Thamilan"; 

在 java 和 j2me 中,关于内存限制。

4

2 回答 2

1

您可以通过以下代码计算字符串的内存分配

int NumOfBytes = 8 * (int) ((((no chars) * 2) + 45) / 8) ;
于 2011-08-05T09:20:55.040 回答
0

第一个表单在String您每次运行时都会创建一个新对象。第二种形式没有。

这适用于 Java SE 和 Java ME。实际上,Java SE 和 Java ME 字符串的基本表示是相同的。


使用new String(...)几乎总是不必要和浪费的。几乎没有任何意义有一个新的实例。Java 中的所有String对象都是不可变的。

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

于 2011-08-05T08:48:42.850 回答