空varargs

时间:2015-10-20 19:05:11

标签: java optimization variadic-functions

使用这种方法:

    public void args(Class... methodArgsTypes) {
        if (methodArgsTypes.length == 0) {
            methodArgsTypes = NO_PARAMETERS;  // public static Class[0] array
        }
        this.methodArgsTypes = methodArgsTypes;
    }

当调用方法而没有参数args()时,会创建Class[0]。由于methodArgsTypes值在应用的生命周期内保持不变(当您移除上面的if块时),如上所述if块是否有意义?它的目的是防止在内存中创建许多空数组,并仅保留对一个公共静态空数组的引用。因此,记忆力较少。

这会有意义吗?

1 个答案:

答案 0 :(得分:0)

不,由于两个原因: 1)空数组非常小,几乎可以立即死掉,所以它不会对你的记忆行为产生任何重大影响 2)由于其积极的内联优化,即时编译器很可能无论如何都会优化它。