public native int hashCode();其 hashCode()方法由native修饰,说明调用了依赖于本地平台的实现并且返回一个整形的量
public boolean equals(Object obj) { return (this == obj); }其equals方法接受Object类型的参数,通过地址的比较来判断是否为相同对象。由此可知,其他类在不重写equals方法时都将默认使用地址来判断是否相同。
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } Object的toString方法返回本对象的类名+@+16进制哈希值组成的字符串。PRotected native Object clone() throws CloneNotSupportedException; Object的clone方法依然是一个本地方法,然而像下面这样直接调用会报java.lang.CloneNotSupportedException: me.clone.Carat java.lang.Object.clone(Native Method)这样的一个异常,必须实现Cloneable接口才可以package me.clone;public class Car { private int price; public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public Car() { price = (int) (Math.random() * 10000); } public Car f1() { Car cc = null; try { cc = (Car) this.clone(); } catch (CloneNotSupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { return cc; } }}package me.clone;public class Test { Car c = new Car(); public static void main(String[] args) { Car car1 = new Car(); System.out.println(car1.getPrice()); Car car2 = car1.f1(); System.out.println(car2.getPrice()); }}public class Car implements Cloneable {}像这样定义就不会有问题了Object的notify与wait设计到多线程的部分并且是final native修饰的不可以被重写protected void finalize() throws Throwable { } finalize方法由垃圾回收机制调用
新闻热点
疑难解答