我想知道两种方法的区别。我现在正在使用一些旧代码,通过与空字符串primitive
连接,将String
值设置为""
。
obj.setSomeString("" + primitiveVariable);
但在此链接Size of empty Java String中,它表示如果您为每个实例创建单独的空字符串,那么显然会占用更多内存。
所以我考虑在valueOf
课程中使用String
方法。我检查了文档String.valueOf()它说如果参数为null,则字符串等于“null”;否则,返回obj.toString()的值。
那么哪一个是更好的方式
obj.setSomeString("" + primitiveVariable);
obj.setSomeString(String.valueOf(primitiveVariable));
上述过程是在List
次迭代中完成的,其大小超过600,并且预计将来会增加。
答案 0 :(得分:2)
Q值。那么哪一个是更好的方式
一个。 obj.setSomeString(String.valueOf(primitiveVariable))
通常是更好的方式。它更整洁,更国内。这会将primitiveVariable
的值打印为String
,而另一个将其打印为int
值。第二种方式更像是“黑客”,而且组织性较差。
另一种方法是使用Integer.toString(primitiveVariable)
,这与String.valueOf
基本相同。
答案 1 :(得分:2)
当您执行不会创建对象的""
时。它将创建一个String文字。 There is a differenc(How can a string be initialized using " "?)实际上。
来到你的实际问题,
Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。字符串连接是通过StringBuilder(或StringBuffer)类及其append方法实现的。
所以你不必再创建StringBuilder对象,然后再给出另一个String对象。
但是valueOf直接给你一个String对象。只是去吧。
除了表现之外,一般都要考虑一下。为什么要与空字符串连接,实际上你想将int转换为String:)