gpt4 book ai didi

java - 为什么java内部函数还有代码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:07:10 24 4
gpt4 key购买 nike

Java API 中有许多方法是内在的,但在查看源代码时仍然有代码与之关联。

例如,Integer.bitCount() 是一个内部函数,但如果您打开 Integer 类文件,您可以看到它的代码。

如果编译器/jvm 不一定使用这段代码,它可能有什么用途?

最佳答案

根据 wikiIntrinsic函数的定义如下:

In compiler theory, an intrinsic function is a function available for use in a given programming language whose implementation is handled specially by the compiler. Typically, it substitutes a sequence of automatically generated instructions for the original function call, similar to an inline function. Unlike an inline function though, the compiler has an intimate knowledge of the intrinsic function and can therefore better integrate it and optimize it for the situation. This is also called builtin function in many languages.

进一步说,重要且与您的问题相关:

Compilers that implement intrinsic functions generally enable them only when the user has requested optimization, falling back to a default implementation provided by the language runtime environment otherwise.

因此,这意味着大部分时间都使用默认实现,直到不需要或不可能进行优化(这取决于运行 JVM 的机器/配置)。 JVM 可以将整个Integer.bitCount() 代码替换为优化的机器代码指令。

此外,检查这个discussion这通过示例代码很好地解释了这一点。

关于java - 为什么java内部函数还有代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23041036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com