为什么在返回值之前将字符串与空值连接起来?

时间:2019-08-14 20:30:40

标签: java string-concatenation

我已经在一些Java库中看到,当返回一个字符串时,该值将与一个空值连接在一起。

例如package java.io;

/**
 * The system-dependent default name-separator character, represented as a
 * string for convenience.  This string contains a single character, namely
 * <code>{@link #separatorChar}</code>.
 */
public static final String separator = "" + separatorChar;

为什么不只返回spacerChar?

字符串是否是返回值的首选数据类型?不管怎么说,为什么这只是一个字符?为什么使用字符串数据类型?

进行此转换是否会对性能产生影响?

2 个答案:

答案 0 :(得分:5)

一个是String,另一个是char。始终处理String很有用,而不是必须检查它是否是char

答案 1 :(得分:3)

这是将char转换为String的几种方法之一。尽管这曾经是从char转换为String的较慢方法之一,但自Java 6 update 20起,通过引入-XX:+ OptimizeStringConcat标志,串联是将任何值转换为string的最快方法。从Java 7开始,此选项默认为打开。所以你是对的。有性能影响。这是一篇非常好的文章,讨论了这个问题:https://stackoverflow.com/a/44485322/1028560