Java API 中有许多方法是内在函数,但在查看源代码时仍然具有与其关联的代码。
例如,Integer.bitCount() 是一个内在函数,但如果您打开 Integer 类文件,您可以看到包含它的代码。
如果编译器/jvm 不一定使用该代码,那么该代码可以用于什么用途?
As per wiki,定义Intrinsic
功能如下:
在编译器理论中,内部函数是可用于
在给定的编程语言中使用,其实现已被处理
特别是由编译器。通常,它会替换一系列
自动生成原始函数调用的指令,
类似于内联函数。但与内联函数不同的是,
编译器对内在函数有深入的了解,并且可以
因此更好地整合它并针对情况进行优化。这
在许多语言中也称为内置函数。
此外,它还说,重要且与您的问题相关:
实现内部函数的编译器通常启用它们
仅当用户请求优化时,才回退到
语言运行时环境提供的默认实现
否则。
因此,这意味着大多数时候都会使用默认实现,直到不请求或不可能进行优化为止(这取决于 JVM 运行的机器/配置)。 JVM可以替代整个Integer.bitCount()
代码到优化的机器代码指令。
此外,检查这个讨论它用示例代码很好地解释了这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)