我知道String.valueOf(int)
启用了缓存,并且通常不会导致创建额外的对象,但是("" + 1)
是否会进行某种编译器优化?
应该使用哪一个?
编辑:String.valueOf(int)不启用缓存,Integer.valueof(int)会启用。
答案 0 :(得分:5)
"" + 1
是一个坏习惯,据我所知它没有以任何方式进行优化。
坚持使用String.valueOf(int)
。
答案 1 :(得分:5)
不,String.valueOf
不执行任何缓存。但是,它比"" + 1
(它也不执行任何缓存)更可读,因为它说明了你想要做的事情。
"" + 1
讨论字符串连接和空字符串,它们都与你的目标无关 - 即获取整数的值,为String
。
String.valueOf
确切地说出了你想要做的事情,所以请使用它。
答案 2 :(得分:0)
它们都是等同的,更多的是个人品味。就个人而言,我更喜欢String.valueOf(int)。
答案 3 :(得分:0)
选择明确的转化而非隐式转化。
String.valueOf(int)
告诉你它到底在做什么。
虽然,我总是使用Integer.toString(int)
,因为我将其视为基元toString
的{{1}}方法。
答案 4 :(得分:0)
使用String.valueOf(int)
对于应用程序来说是合理的最佳选择。
""+i
对您来说可能更合适,除非您有足够的时间和资源有限的设备,节省您的时间可能比节省微秒的CPU时间更有价值。