Java语言不同于C++语言,是一种单根继承结构语言,也就是说,Java中所有的类都有一个共同的祖先。这个祖先就是Object类。
object类的结构
如图可知,Object类有12个成员方法,按照用途可以分为以下几种
1,构造函数
2,hashCode和equals函数用来判断对象是否相同,
3,wait(),wait(long),wait(long,int),notify(),notifyAll()
4,toString()和getClass(),
5,clone()
6,finalize()用于在垃圾回收时调用
函数说明
clone()
clone()函数的用途是用来另存一个当前存在的对象。
hashCode()和equals()
- equals()用于确认两个对象是否相同。
- hashCode()用于获取对象的哈希值,这个值的作用是检索。
- 哈希值相同的对象不一定equals()
- equals()返回true的两个对象一定相同。
- int a=65 ; char c='A'; System.out.println(a==c);//返回true,因为基本类型的==就是判断值是否相等
toString()和getClass()
toString()返回一个String对象,用来标识自己
getClass()返回一个Class对象,如果打印出来会发现结果是如下格式
- 1
因为返回的是一个class对象,后面可以跟class类的方法。用的是谁的构造函数,那么getClass返回的就是谁的类型。
getClass()经常用于java反射机制
wait(),wait(long),wait(long,int),notify(),notifyAll()
- 这几个函数体现的是Java的多线程机制
- 在使用的时候要求在synchronize语句中使用
- wait()用于让当前线程失去操作权限,当前线程进入等待序列
- notify()用于随机通知一个持有对象的锁的线程获取操作权限
- notifyAll()用于通知所有持有对象的锁的线程获取操作权限
- wait(long) 和wait(long,int)用于设定下一次获取锁的距离当前释放锁的时间间隔
finalize()
这个函数在进行垃圾回收的时候会用到,匿名对象回收之前会调用到。
关于native
native本地的,所有native修饰的方法都没有方法体; Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。可以将native方法比作Java程序同C程序的接口。