答案很简单:以这种方式定义内在函数,因为存在一种更快,本机的方法来获取函数结果,并且可以在指定映射的情况下使用该方法。
那根本与编译无关。
Integer.bitCount在实现被标记为可替换为本地asm指令POPCNT的意义上,它是特殊的。基本上,在使用
Integer.bitCount函数时(如果CPU支持该指令)使用此本机指令,当您声明函数的自己副本时,将使用常规实现。
为什么JVM能够识别出功能可以优化?因为它是硬编码的地方在JDK中,有无关相似的代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)