Java方法签名与JNI,反射

本文探讨了Java方法签名在反射和JNI调用中的重要性,指出它们实际上非常相似,都是通过特定标识来描述函数调用。方法签名包括访问标志、返回类型、方法名和参数列表,但实际判断方法重载时还需考虑类和线程。理解这些签名特性对于正确调用Java方法至关重要,无论是反射还是JNI,都需要明确对象、方法名、方法参数,甚至在JNI中还需要考虑虚拟机环境的标识(JNIEnv)。
摘要由CSDN通过智能技术生成

http://blog.houzhi.me/2016/03/19/java-signature-reflect-jni

在这段时间写东西,必须要先吐槽一下找实习的杯具。找个实习不容易,没经验,各种跪。

一直都觉得在Java反射中,那些反射的方法调用都很有规律,每一个调用都需要相同的特性:函数对象(Method),函数参数,类对象。今天坐在电脑前又回忆了JNI的调用方式(C++调用Java),也需要相同的内容:函数ID(jmethodID),参数,类对象(jobject),JNIEnv。仔细一比较,其实两者就是一样的,都是Java方法签名

记得刚学Java的时候,也有特别将Java方法签名,那时候就基本是记下了,但是根本没想到Java方法签名意味着什么,现在终于是能深切体会一些了。这个签名就表示了Java方法,相当于它的ID,适用于Java整个环境,能够通过指定这些内容,形容一次函数调用。我们平时采用普通方式调用Java函数,其实也就是先描述了函数,参数,类对象。其实在Java层,我觉得可以理解为隐含了一个线程描述(JVM)。在native里面,就有个JNIEnv(线程本地变量)描述一个Java虚拟机环境。至于到了java的.class文件里面也是一样的包含了这些标志。下面是截取了一段Constant poll中的内容&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值