jdk源码中有一些native修饰的方法,比如unsafe.class,只能看见方法声明,但是具体的逻辑看不到。可以通过下载Openjdk来解决。openJDK上有完整的JDK源代码,JDK源代码由C++、Java、C、汇编 这四种语言组成。JVM主体是C++写的,JNI部分是C,工具类是Java写的,JVM里混有汇编代码。看不到实现是因为,JDK是闭源的。而要看到NATIVE方法必须要SUN受权现在只有OPENJDK组织是被SUN授权的。
native方法是没有提供源码的。
Java中要做到跨平台处理,肯定是要和本地的硬件联系,这个方法的作用就是与硬件层面结合,所以不同的平台的话,native执行都不一样。
下载OpenJdk过程,可以参考:http://www.cnblogs.com/linzhanfly/p/9474173.html ,它的查看可以通过查看share下面的native等等文件,但是有时候找不全。
另一种方法,在线查看:
查看过程:参考博客https://blog.csdn.net/losingcarryjie/article/details/78244823
1 登录AndroidXRef网站
官网地址
2 选择SDK版本
3 进入搜索界面
4. 查看Native
直接在3中的搜索页面Full Search中输入“getDlWarning”,右边的In Projects选择“select all”,接着点击“search”,从搜索结果中找到后缀名带有c的文件(.cpp,.cc等等)即可
note:方法名前面加了static修饰,用上面方法直接搜,如果没加,就需要类名_方法名形式。比如:Unsafe_compareAndSwapInt. 可以看到这是一个C++写的代码。
还没有评论,来说两句吧...