将 Double 转换为 String 的最佳实践
Best practice to convert a Double to a String
我目前正在使用
Double a = 0.00;
for(condition)
//Do things
String result = "" + a;
会用
String result = a.toString();
与我现在所拥有的相比,提供任何真正的好处。这只是对编译器有帮助还是这两种方法之间有什么区别?
我认为第二种选择更好因为字符串的连接消耗更多的内存。因为字符串在第一种方式中是不可变对象存储一个 Double 对象 + 两个 String 对象的内存正在浪费。
但是在第二个选项中它只创建一个新的String对象。所以在你的记忆中只会有一个Double对象+一个String对象。
第一个版本 - String result = "" + a
与 String result = "" + a.toString();
相同。只要有 String + Object 的串联,就会调用 toString
方法。
此处的最佳做法是什么?什么看起来更适合你。我可能会选择第一个版本。
如果您担心两者的性能 - String result = a.toString();
在纸面上会更快,因为您不需要创建/获取一个空字符串来创建一个新字符串。但是,与 Java 中的许多内容一样,JIT 编译器很可能会优化类似的内容,所以我不会太担心它。即使不是这样,您也不应过早地担心优化 - 如果您的代码运行缓慢,那么通常还有其他问题比这要大得多。
我目前正在使用
Double a = 0.00;
for(condition)
//Do things
String result = "" + a;
会用
String result = a.toString();
与我现在所拥有的相比,提供任何真正的好处。这只是对编译器有帮助还是这两种方法之间有什么区别?
我认为第二种选择更好因为字符串的连接消耗更多的内存。因为字符串在第一种方式中是不可变对象存储一个 Double 对象 + 两个 String 对象的内存正在浪费。
但是在第二个选项中它只创建一个新的String对象。所以在你的记忆中只会有一个Double对象+一个String对象。
第一个版本 - String result = "" + a
与 String result = "" + a.toString();
相同。只要有 String + Object 的串联,就会调用 toString
方法。
此处的最佳做法是什么?什么看起来更适合你。我可能会选择第一个版本。
如果您担心两者的性能 - String result = a.toString();
在纸面上会更快,因为您不需要创建/获取一个空字符串来创建一个新字符串。但是,与 Java 中的许多内容一样,JIT 编译器很可能会优化类似的内容,所以我不会太担心它。即使不是这样,您也不应过早地担心优化 - 如果您的代码运行缓慢,那么通常还有其他问题比这要大得多。