类Object是类层次结构的根。 每个类都有一个Object作为超类。 所有对象,包括数组,都实现了这个类的方法。
registerNative()方法
要为你自己的类注册本地函数,必须RegisterNatives
从你自己的库中的本机代码调用JNI函数,让JVM找到你的本地函数。
getClass()方法
返回此Object的运行时类。
Number n = 0;
Class<? extends Number> c = n.getClass();
抽象类Number是BigDecimal、BigInteger、Byte、Double、Float、Integer、Long和Short类的父类,表示可转换为基本类型byte 、 double 、 float 、 int 、 long和short数值。
其中Number 是对调用getClass的表达式的静态类型的擦除,此代码片段中不需要强制转换。
返回class java.lang.Integer
hashCode()方法
返回对象的哈希码值。
如果通过equals方法比较的两个对象返回true,那么他们的哈希值也是一样的。
equals()方法
equals方法在非空对象引用上实现等价关系:
1.它是自反的:对于任何非空引用值x , x.equals(x)应该返回true 。
2.它是对称的:对于任何非空引用值x和y , x.equals(y)应返回true当且仅当y.equals(x)返回true 。
3.它是可传递的:对于任何非空引用值x 、 y和z ,如果x.equals(y)返回true并且y.equals(z)返回true ,那么x.equals(z)应该返回true 。
4.它是一致的:对于任何非空引用值x和y , x.equals(y)多次调用始终返回true或始终返回false ,前提是没有修改对象的equals比较中使用的信息。
5.对于任何非空引用值x , x.equals(null)应该返回false 。
返回值:如果此对象与 obj 参数相同,则为true ; 否则为false
通常为了需求,我们要重写equals方法和hashcode方法,如对象的实例数据是相等的,此时不需要比较对象在内存中的地址。
clone()方法
用于创建并返回此对象的副本。
如果克隆的对象的类没有实现接口Cloneable,则会抛出CloneNotSupportedException异常。例所有数组都实现了此接口,数组类型T[]的clone方法的返回类型是T[],T是任何引用或原始类型 。否则将对象的相应字段的内容赋值给此对象,因clone()实现的是浅拷贝,拷贝的是引用地址并没有为引用对象分配新的内存,而深拷贝则会开辟新的内存。
toString()方法
该字符串由对象是其实例的类的名称、at-sign 字符 ` @ ' 和对象哈希码的无符号十六进制表示组成。
即返回一个等于以下值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode());
返回对象的字符串表示,易于人们的阅读。