我注意到here,当调用native个方法时,会生成一个包装器.但是,似乎只有在编译方法时才会生成此包装器.所以,我的问题是: native个方法可以被解释,而不能被编译吗(from the java perspective)?

推荐答案

本机方法可以被解释,而不能被编译(从Java的Angular 来看)吗?

可以,例如,参见此处生成解释器存根(在TemplateInterpreterGenerator::generate_native_entry中):https://github.com/openjdk/jdk/blob/01c0d5dd0a4f7587288219bad8ed4648f4e456ce/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp#L793

编译的存根和解释的存根之间的主要区别在于,解释程序存根处理all个解释的本机调用(有两个存根:一个用于synchronized个方法,一个用于常规方法),而编译的包装器仅专用于一个方法.

对于解释器存根,不同的参数和返回类型通过对"签名处理程序"和"结果处理程序"的行外调用来处理.

Java相关问答推荐

如何在Spring Boot中创建500错误的响应正文?

参数值[...]与预期类型java.util.Date不匹配

在模拟超类中设置非setter属性的值

如何使用AWS CLI从S3存储桶中的所有对象中删除用户定义的元数据?

对某一Hyroby控制器禁用@cacheable

编译多个.Java文件并运行一个依赖于用户参数的文件

什么是Java原子属性的正确getter和setter

如何在Microronaut中将 map 读取为 map

如何在我的世界中为互动增加冷却时间?

Java Telnet客户端重复的IAC符号

有谁能帮我修一下这个吗?使输出变得更加整洁

错误:不兼容的类型:Double不能转换为Float

无法将GSON导入到我的JavaFX Maven项目

在缺少字段时使用Jackson With Options生成Optional.Empty()

Win32函数的JNA绑定DwmGetColorizationColor返回E_INVALIDARG错误

如何修复Spring Boot应用程序中的RestDocumentationGenerationException:java.io.FileNotFoundException:/curl-request.adoc(只读文件系统)?

Cucumber中第二个网页的类对象未初始化

带有提取器的JavaFXObservableList会根据侦听器的存在而改变行为

具有 DayOfWeek 列表的 JPA 实体

移动二维数组的行