我想知道两种方法的区别。有一些我现在正在处理的旧代码,通过与空字符串primitive
连接,将""
值设置为String
值。
obj.setSomeString("" + primitiveVariable);
但是在这个链接空Java字符串的大小中,它表示如果您要为每个实例创建一个单独的空字符串,那么显然这将占用更多的内存。
因此,我想在valueOf
类中使用String
方法。我检查了文档String.valueOf(),如果参数为null,则为;否则返回obj.toString()的值。
所以哪种方法更好
obj.setSomeString("" + primitiveVariable);
obj.setSomeString(String.valueOf(primitiveVariable));
上述过程是在List
迭代中完成的,该迭代的大小超过600,预计将来还会增加。
发布于 2017-07-28 23:51:58
当您执行""
时,它不会创建一个对象。它将创建一个字符串文本。实际上是有一个不同的(如何使用“”初始化字符串?)。
说到你的实际问题,
来自字符串连接文档
Java语言提供了对字符串连接操作符(+ )和其他对象转换为字符串的特殊支持。字符串级联是通过StringBuilder(或StringBuffer)类及其附加方法实现的。
因此,不相关的是,您正在创建StringBuilder对象,然后这将给出另一个String对象。
但是,valueOf直接给出一个String对象。去争取吧。
除了表演外,一般想想。为什么要连接空字符串,而实际上要将int转换为string :)
https://stackoverflow.com/questions/45386769
复制相似问题