Java API中有许多内在函数的方法,但在查看源代码时仍然有与它们相关的代码.
例如,Integer.bitCount()是一个内在函数,但如果打开Integer类文件,则可以看到它的代码.
如果编译器/ jvm不一定使用此代码,那么该代码可以用于什么目的?
sak*_*ura 10
根据wiki,IntrinsicFunction 的定义如下:
在编译器理论中,内部函数是可用于给定编程语言的函数,其实现由编译器专门处理.通常,它会替换原始函数调用的一系列自动生成的指令,类似于内联函数.与内联函数不同,编译器对内在函数有深入的了解,因此可以更好地集成它并针对这种情况对其进行优化.这在许多语言中也称为内置函数.
此外,它说,重要和与您的问题相关:
实现内部函数的编译器通常仅在用户请求优化时启用它们,否则回退到由语言运行时环境提供的默认实现.
因此,这意味着在大多数情况下都会使用默认实现,直到不请求或不可能进行优化(这取决于运行JVM的计算机/配置).JVM可以将整个Integer.bitCount()代码替换为优化的机器代码指令.
此外,请查看此讨论,其中使用示例代码很好地解释了这一点.
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |