JAVA源码分析之---Object类(一)---registerNatives,getClass方法的使用
来源:互联网 发布:java jbpm工作流实例 编辑:程序博客网 时间:2024/05/17 23:25
本人java码农一名,在工作中,萌生了分析java源码的想法,从今天开始,一步一步开始分析java源码吧。
本人阅读jdk源码版本为jdk1.7。
既然是Java,那么肯定要从最顶层的Object类开始分析。
Object全称:java.lang.Object。
Object类是类层次结构的根,也就是java中所有类的祖先类,所有类默认继承Object类,所以Object类中的方法有必要研究一下。
registerNatives含义是本地注册的意思。分析:该类有static,为静态方法,同时有native修饰。native表示该方法的实现java本身并没有完成,而是有c/c++来完成,形成.dll文件。但是我们注意到,这里的{}里并没有具体的方法体,而且这里是由private修饰,那么应该如何执行呢?其实后面还一个静态代码块。
静态代码块就是一个类在初始化过程中必定会执行的内容,所以在这里执行。
getClass就是获得类的意思,由注释可以知道,这个方法主要是获得该类的完整名称。
在这里我新建了一个ObjectTest类,因为Object是所有类的祖父类,所以该类也拥有getClass方法,我们可以直接查看输出:
本人阅读jdk源码版本为jdk1.7。
既然是Java,那么肯定要从最顶层的Object类开始分析。
Object全称:java.lang.Object。
Object类是类层次结构的根,也就是java中所有类的祖先类,所有类默认继承Object类,所以Object类中的方法有必要研究一下。
今天要剖析的方法是registerNatives(),getClass()。
第一个方法:registerNatives()
private static native void registerNatives();
registerNatives含义是本地注册的意思。分析:该类有static,为静态方法,同时有native修饰。native表示该方法的实现java本身并没有完成,而是有c/c++来完成,形成.dll文件。但是我们注意到,这里的{}里并没有具体的方法体,而且这里是由private修饰,那么应该如何执行呢?其实后面还一个静态代码块。
static { registerNatives(); }
静态代码块就是一个类在初始化过程中必定会执行的内容,所以在这里执行。
第二个方法:getClass()
public final native Class<?> getClass();
getClass就是获得类的意思,由注释可以知道,这个方法主要是获得该类的完整名称。
package test.java.lang;public class ObjectTest {public static void main(String[] args) {ObjectTest ot = new ObjectTest();Class<? extends ObjectTest> class1 = ot.getClass();System.out.println(class1);}}
在这里我新建了一个ObjectTest类,因为Object是所有类的祖父类,所以该类也拥有getClass方法,我们可以直接查看输出:
class test.java.lang.ObjectTest可以看出,这里完整的打印了该类的全路径名。
1 0
- JAVA源码分析之---Object类(一)---registerNatives,getClass方法的使用
- Object 类的 getClass方法
- JAVA源码分析之---Object类(二)---hashCode,equals,clone方法的使用
- (OK) android6.0源码分析之Runtime的初始化 - RegisterNatives
- 关于Object类里的本地方法registerNatives
- java学习日记_52:Object类的getClass()方法
- java中Object类的getClass方法有什么用以及怎么使用?
- Object源码研究2——getClass()方法分析
- Object 的 registerNatives() 方法的作用
- Object 的 registerNatives() 方法的作用
- object类----getClass方法
- 实现JNI的另一种方法:使用RegisterNatives方法传递和使用Java自定义类 (转)
- JNI:使用RegisterNatives方法传递和使用Java自定义类
- JNI:使用RegisterNatives方法传递和使用Java自定义类
- JNI:使用RegisterNatives方法传递和使用Java自定义类
- JNI:使用RegisterNatives方法传递和使用Java自定义类
- JNI:使用RegisterNatives方法传递和使用Java自定义类
- JNI:使用RegisterNatives方法传递和使用Java自定义类
- Visual Basic 身份证号验证程序
- canal源码分析系列——ErosaConnection分析
- 【C/C++】深入位运算之比赛顺序
- 字符串匹配的Boyer-Moore算法
- Windos常用数据类型
- JAVA源码分析之---Object类(一)---registerNatives,getClass方法的使用
- Linux下的C语言开发(开篇)
- python解码问题
- VanlOS 10 发布
- java反射机制详解 及 Method.invoke解释
- Java使用freemarker模版发送包含图片邮件
- HDU 4908/BC B BestCoder Sequence
- 深入理解Java:注解(Annotation)自定义注解入门
- eclipse中配置tomcat 启动正常 访问报404