相关疑难解决方法(0)

静态空数组实例的性能优势

通常的做法是将常量空数组返回值提取为静态常量.像这儿:

public class NoopParser implements Parser {
    private static final String[] EMPTY_ARRAY = new String[0];

    @Override public String[] supportedSchemas() {
        return EMPTY_ARRAY;
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

可能这是出于性能原因而完成的,因为new String[0]每次调用该方法时直接返回会创建一个新的数组对象 - 但它真的会吗?

我一直想知道这样做是否真的有可衡量的性能优势,或者它是否只是过时的民间智慧.空数组是不可变的.VM是否无法将所有空String数组卷成一个?VM new String[0]基本上没有成本吗?

将这种做法与返回一个空字符串进行对比:我们通常很乐意写return "";,而不是return EMPTY_STRING;.

java arrays performance

7
推荐指数
2
解决办法
691
查看次数

标签 统计

arrays ×1

java ×1

performance ×1