首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JVM上的所有"Magic“方法都被标记为Native吗?

JVM上的所有"Magic“方法都被标记为Native吗?
EN

Stack Overflow用户
提问于 2012-11-06 13:24:46
回答 2查看 1K关注 0票数 6

我所说的“魔术”指的是那些具有语义的方法,这些语义不是用纯Java表达的。

我知道所有的native方法都很神奇,因为它们的实现是由底层运行时提供的,而不是由Java字节码提供的。

反之亦然?所有的魔术方法都是native吗,还是有一些魔术方法显然是用纯Java实现的,但需要一些特殊的JVM用例提供额外的帮助?

用例是,我想通过检测其字节码来修改Java的语义。所有这些神奇的方法都是特殊情况,我必须以某种方式处理它们。native方法都很明显,但我想知道是否有任何未标记的魔术方法需要我注意和特殊情况。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-06 13:32:28

不幸的是,在本机方法之外还有一些“神奇”的方法。看看内部方法-这些方法是JIT所熟知的,在编译方法时使用手写实现,包括大量调用的方法,如String.indexOf、Integer.numberOfLeadingZeros等。

看一下here,在Intrinsics下,了解一些细节,以及如何确定在您的JVM上内嵌了哪些方法。我不确定注入字节码是否会关闭内部化,但是有一个DisableIntrinsic XX选项可以用来禁用选定的内部函数。

票数 5
EN

Stack Overflow用户

发布于 2012-11-06 13:34:27

您可能会发现很多细节已经在AspectJ中处理过了。在进行手动字节码操作之前,我会先看一下它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13244898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档