为什么java内部函数仍然有代码?

2023-11-22

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

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

如果编译器/jvm 不一定使用该代码,那么该代码可以用于什么用途?


As per wiki,定义Intrinsic功能如下:

在编译器理论中,内部函数是可用于 在给定的编程语言中使用,其实现已被处理 特别是由编译器。通常,它会替换一系列 自动生成原始函数调用的指令, 类似于内联函数。但与内联函数不同的是, 编译器对内在函数有深入的了解,并且可以 因此更好地整合它并针对情况进行优化。这 在许多语言中也称为内置函数。

此外,它还说,重要且与您的问题相关:

实现内部函数的编译器通常启用它们 仅当用户请求优化时,才回退到 语言运行时环境提供的默认实现 否则。

因此,这意味着大多数时候都会使用默认实现,直到不请求或不可能进行优化为止(这取决于 JVM 运行的机器/配置)。 JVM可以替代整个Integer.bitCount()代码到优化的机器代码指令。

此外,检查这个讨论它用示例代码很好地解释了这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么java内部函数仍然有代码? 的相关文章

  • 我可以确定谁在调用 Java 中的函数或实例化类吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在Java中 如何使用堆栈跟踪或反射找到方法的调用者 https stackoverflow com questions 421280 in java how do i find the caller
  • JNA - EnumProcessModules() 未返回所有 DLL?

    我试图从游戏中读取坐标 当我在通过 OpenProcess 接收的 HANDLE 上使用 ReadProcessMemory 以及我在 CheatEngine 中找到的内存时 效果非常好 例如 如果我知道正在运行的进程中的浮点值是0x5AB
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • 如何在Spring Boot中初始化一次MongoClient并使用它的方法?

    您好 我正在尝试导出MongoClient在 Spring Boot 中成功连接后 我尝试在其他文件中使用它 这样我就不必每次需要在 MongoDB 数据库中进行更改时都调用该连接 连接非常简单 但目标是将应用程序连接到我的数据库一次 然后
  • 使用正则表达式验证输入字符串是否为 0-255 之间的数字

    我在将输入字符串与正则表达式匹配时遇到问题 我想验证输入数字在 0 255 之间并且长度最多应为 3 个字符 代码工作正常 但当我输入 000000 至任意长度时 显示 true 而不是 false 这是我的代码 String IP 000
  • 如何将抽象工厂与单例模式结合起来? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在用 java 编码 并且对这些模式很陌生 谁能给我一个也使用单例的工厂抽象的例子 这是一个实现类的示例单例模式 这个实现也是线程安全
  • Active MQ - HelloWorld 示例异常

    我正在尝试运行 hello world 示例在这里找到 http activemq apache org hello world html I added activemq all 5 5 1 jar已经到图书馆了 它构建成功 但出现以下警
  • 从字符串生成密钥?

    我需要从字符串生成一个密钥 以便我始终可以从同一字符串创建相同的密钥 具体来说是一个Key对象 这样我就可以用它来创建Cipher进而创建SealedObject 这在 Java 中可行吗 我应该考虑什么类 方法组合才能做到这一点 对于 A
  • MediaPlayer.create() 始终返回 null

    我以前用过媒体播放器 从来没有遇到过这个问题 每当我尝试使用 MediaPlayer create 时 该方法都会给我 null 并且我无法播放声音 我有什么遗漏的吗 public class Game extends Activity p
  • 在java中将DataURL图像转换为图像文件

    我在我的 java servlet 中接收图像 DataURL 它看起来像 data image jpeg base64 9j 4AAQSkZJRgABAQAAAQABAA 我需要将其另存为图像文件 我该怎么做 The simplest w
  • spring mvc 跟踪引用页面

    在基于注释的弹簧控制器中 如果用户正在url com first page并点击一个链接或提交一份表格指出url com second page 如何制作second page知道url of first page所以这样second pa
  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • 如何在 JdbcTemplate 中创建 mySQL 存储过程

    背景 为了解决 MySql 中某些语句只允许在存储过程中出现的问题 我尝试在 JdbcTemplate 提交的 sql 中创建 运行然后删除存储过程 一个简单的例子是 这恰好是在 Spring Boot 中 Service public c
  • Java字符串查找和替换的最佳方法?

    我正在寻找 Java 中字符串查找和替换的最佳方法 这是一句话 我的名字叫米兰 人们都知道我叫米兰瓦西奇 我想用 Milan Vasic 替换 Milan 弦 但在我已经有 Milan Vasic 的地方 情况不应该是这样 搜索 替换后的结
  • “___ 中的方法 ___() 是在无法访问的类或接口中定义的”编译错误

    我发现了一个奇怪的编译限制 我无法解释 并且我不明白这个限制的原因 示例1 考虑这些类 In package e1 public class C1 enum E1 A B C public E1 x In package e2 import
  • Java LRU 缓存使用 LinkedList

    堆栈溢出的新手 所以请不要介意我以菜鸟的方式问这个问题 我正在尝试使用链表实现 LRU 缓存 我在这里看到了使用 linkedHashMap 和其他数据结构的其他实现 但对于这种情况 我正在尝试使用链表创建最佳优化版本 正如我在技术期间被问
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • 在没有EOF的情况下停止读取java中的输入

    In 问题 如何停止读取输入 我的程序继续运行 要求更多输入 public static void main String args throws Exception BufferedReader br new BufferedReader
  • 获取Java中ResultSet返回的行数

    我用过一个ResultSet返回一定数量的行 我的代码是这样的 ResultSet res getData if res next System out println No Data Found while res next code t

随机推荐

  • 从 Scala 的 Future 中获取数据

    I ve a Future List Person 1 我想要得到List Person 从中 我该怎么做 import scala concurrent Future val futPersons Future List Person 有
  • Laravel 5.3 -VerifyCsrfToken.php 第 68 行中的 TokenMismatchException:

    当我登录我的应用程序并在输入后立即返回 然后尝试注销时 我从标题中收到错误消息 我该如何解决该问题 我在 laravel 5 4 中遇到了同样的问题 然后以下命令对我有用 chmod 777 存储 框架 会话 在此之前 它是 chmod 7
  • 使用postman发送json api对象

    我正在使用 JSONAPI 规范http jsonapi org format status 我有如下数据 data type tag id 1 attributes name Test 如何使用 postman chrome 扩展向端点发
  • 有没有办法在安装核心服务(Spark 等)后设置引导操作在 EMR 上运行?

    有没有办法在安装核心服务 Spark 等 后设置引导操作在 EMR 上运行 我正在使用 emr 5 27 0 您可以提交一些脚本作为step 不是引导程序 例如 我制作了一个SSL证书更新脚本 并通过步骤将其应用到EMR中 这是我用 Pyt
  • BadPaddingException 解密 Android 中的加密数据

    我对 Android 安全概念不熟悉 我一直在阅读一些博客 以了解我们可以使用公钥加密数据 并可以使用相应的私钥解密数据 加密似乎没有任何问题 但是当我尝试解密它时 它会抛出 javax crypto BadPaddingException
  • 我的应用程序如何发送带有照片的彩信?

    我想从我的应用程序撰写一条消息 其中可以包含照片 例如 我在 iPhone 中输入了我的相册并打开了一张照片我可以单击选项 然后单击彩信选项卡 照片将添加到消息中然后我可以将其发送给我想要的任何联系人 我想要的是 当我单击应用程序上的按钮时
  • 使用 gtools::mixedsort 或 dplyr::arrange 的替代方案

    我正在尝试通过使用来订购数据框dplyr arrange 问题是我尝试排序的列包含一个固定字符串后跟一个数字 例如由下面的虚拟代码生成的 dummydf lt data frame values rnorm 100 sortcol past
  • 为什么 a[c] 覆盖 a[b]? [复制]

    这个问题在这里已经有答案了 我不明白为什么输出是456 我认为a b 中的b是一个对象的属性 而c是a的另一个属性 它们与 var b 和 c 完全无关 但为什么 a c 会覆盖 a b 呢 var a b key b c key c a
  • 错误:“:”不是有效的资源名称字符

    我已将 Eclipse 项目导入到 android studio 我用 google 搜索但没有得到正确的答案 发生这些错误 D app src main res values strings xml Error Error is not
  • 测量 Android 上的数据漫游流量?

    刚从冰岛度过一个愉快的假期回来 正在等待我的电话公司的数据漫游账单 我希望尽可能限制我的流量 但我想提前知道 我使用了非常好的应用程序网络计数器但它根本没有测量漫游数据流量 所以我想构建自己的应用程序 仅测量漫游数据流量 我有一些布尔值要开
  • 使用 == 比较 numpy 数组的规则是什么?

    例如 尝试理解这些结果 gt gt gt x array 0 1 2 3 4 5 6 7 8 9 gt gt gt x np array 1 2 astype np float32 array 0 1 0 0 0 0 0 0 0 0 0 0
  • npm run 分段错误:11

    我正在尝试 npm run HOT 1 node node modules bin react native webpack server start hot 收到此错误 gt email protected hot Users user
  • Chartkick 柱形图多种颜色

    我在用着图表踢在我的 RoR 项目中生成图表 效果非常好 与谷歌图表一起 我创建了一个柱形图 with 只有 2 个酒吧 男性和女性 现在客户希望每个条形都有不同的颜色 那可能吗 我看过这个帖子 如何更改使用 Chartkick 创建的柱形
  • 如何显示 bash 会话的当前进程树?

    我想创建一个 bash 别名 它为我提供从我正在使用的当前 bash 会话到 init 的进程树 用例是为了知道我是否使用过bash or vi s shell命令 我正在使用 MacOS X 我听说过pstree 但是好像只显示子进程 而
  • 在 Typescript 中向数组添加属性

    我正在尝试向 Typescript 中的 Array 对象添加一个方法 我已经在 SO 上找到了其他解决方案 但这些解决方案都不适合我 我的代码如下所示 interface Array average gt number Array pro
  • 需要根据元素升序将列表划分为列表(Haskell)

    假设我有这样的列表 4 5 6 7 1 2 3 4 5 6 1 2 我需要一个 Haskell 函数来将该列表转换为一个列表列表 该列表由原始列表的片段组成 这些片段按升序形成一系列 所以结果应该是这样的 4 5 6 7 1 2 3 4 5
  • 在不可变类中,为什么字段被标记为私有?

    创建不可变类时将字段设为私有有什么好处 我见过为什么在创建不可变类时 字段被声明为私有 但我没有从这篇文章中理解任何内容 有人可以向我解释一下吗 最好的解释方法是举个例子 public class Immutable private fin
  • 如何使用 WMI 和 Python 弹出 CD?

    使用 Windows 的 WMI 库 如何弹出安装在特定 CD DVD 驱动器中的 CD ROM 由于我在 Python 上使用 wmi py 库 因此我要求获取 WMI 文档或示例的源代码 如果解决方案能够满足比 Windows 2000
  • scala - 将超过22个元素的json解析为案例类

    这个问题或类似的问题之前曾发布过 但是没有一个解决方案适用于最新的库 经过广泛的搜索 到目前为止 我没有发现任何证据表明最流行的库的最新版本spray json or play json 或其插件 可以处理这种情况 有没有什么东西可以将超过
  • 为什么java内部函数仍然有代码?

    Java API 中有许多方法是内在函数 但在查看源代码时仍然具有与其关联的代码 例如 Integer bitCount 是一个内在函数 但如果您打开 Integer 类文件 您可以看到包含它的代码 如果编译器 jvm 不一定使用该代码 那