我注意到here,当调用native
个方法时,会生成一个包装器.但是,似乎只有在编译方法时才会生成此包装器.所以,我的问题是:
native
个方法可以被解释,而不能被编译吗(from the java perspective)?
我注意到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
个方法,一个用于常规方法),而编译的包装器仅专用于一个方法.
对于解释器存根,不同的参数和返回类型通过对"签名处理程序"和"结果处理程序"的行外调用来处理.