标签:jdk 提高 ring 多少 实现 类型转换 src etc alt
Object类是类层次结构的根源,每一个类都存在一个父类为Object类。所有的对象,包括数组,都实现了 Object 类的方法。
这里使用了静态代码块进行Object类的初始化,可以看到初始化调用的是一个私有的(private) 本地的(native) 静态(static)方法。Object类的静态代码块只会在第一次加载Object类的时候进行调用,且只调用一次。由于Object类是所有类的父类,所以可能是由其他类的初始化引起的Object类的初始化。从方法名 registerNatives 中可以看出该方法的作用是用来进行本地方法(native method)的注册,本地方法(native method) 一般是封装在JDK里,用 C/C++ 编写的模块,文件格式为 *.dll。
该方法用于返回代表当前对象的运行时的类(runtime class)的对象(Class类对象)。getClass() 返回的对象在这个运行时的类(runtime class)的静态互斥块(static synchronized) 中会被锁住。对于 Class<? extends |X|>, 在调用 getClass() 时,|X| 是会被擦除的部分,也不需要进行类型转换。jdk中给出了一个代码例子,我们自己手动写一个关于 Number 类的demo:
1 public static void main(String[] args) { 2 Number n1 = 2; 3 Class<? extends Number> c1 = n1.getClass(); 4 System.out.println(c1); //class java.lang.Integer 5 6 Number n2 = 2.1; 7 Class<? extends Number> c2 = n2.getClass(); 8 System.out.println(c2); //class java.lang.Double 9 10 Number n3 = 2L; 11 Class<? extends Number> c3 = n3.getClass(); 12 System.out.println(c3); //class java.lang.Long 13 }
该方法用于返回对象的哈希值,用于哈希表(例如 java.util.HashMap、java.util.Hashtable 等) 中哈希值的计算。如果一个类作为哈希表的存储类型,一般会重写 Object 类的 hashCode() 方法。hashCode() 有以下几个特点:
该方法用于判断两个对象是否相等(if one is equal to another)。 equals() 方法具有以下特点:
该方法用于返回能代表该对象的字符串, Object 类的 toString() 方法返回该对象的类名 + 对象哈希值的十六进制表示.
标签:jdk 提高 ring 多少 实现 类型转换 src etc alt
原文地址:https://www.cnblogs.com/zlxyt/p/10448053.html