【发布时间】:2017-07-29 07:44:55
【问题描述】:
我想知道两种方法的区别。我现在正在处理一些旧代码,它们通过与空字符串 "" 连接来将 primitive 值设置为 String 值。
obj.setSomeString("" + primitiveVariable);
但是在这个链接Size of empty Java String 中它说如果您为每个实例创建一个单独的空字符串,那么显然这将占用更多内存。
所以我想到在String 类中使用valueOf 方法。我检查了文档String.valueOf() 它说 如果参数为空,则字符串等于“空”;否则返回 obj.toString() 的值。
那么哪种方法更好
obj.setSomeString("" + primitiveVariable);obj.setSomeString(String.valueOf(primitiveVariable));
上述过程是在List 迭代中完成的,该迭代的大小超过 600,预计未来会增加。
【问题讨论】:
-
您误解了链接答案的要点。您不是创建新实例。
-
但是每当我们编写一个空字符串并执行相应的类时,都会为该空字符串创建一个字符串对象,对吧?
-
@luk2302 是的。这就是回归。
-
@ArunSudhakaran 那不是对象。字符串字面量。
-
那么在迭代中创建这些文字会占用大量堆空间吗?
标签: java string string-concatenation value-of