知识五

1.5 关于 final 关键字的一些总结
final 关键字主要用在三个地方:变量.方法.类。 1. 对于一个 final 变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改; 如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。 2. 当用 final 修饰一个类时,表明这个类不能被继承。final 类中的所有成员方法都会被隐式 地指定为 final 方法。 3. 使用 final 方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义; 第二个原因是效率。
在早期的 Java 实现版本中,会将 final 方法转为内嵌调用。但是如果方法过于庞大,可能看不 到内嵌调用带来的任何性能提升(现在的 Java 版本已经不需要使用 final 方法进行这些优化了)。 类中所有的 private 方法都隐式地指定为 final。
1.6 Object 类的常见方法总结
Object 类是一个特殊的类,是所有类的父类。它主要提供了以下 11 个方法: public final native Class<?> getClass()//native 方法,用于返回当前运行时对象的 Class 对象,使用 了 final 关键字修饰,故不允许子类重写。 public native int hashCode() //native 方法,用于返回对象的哈希码,主要使用在哈希表中,比如 JDK 中的HashMap。 public boolean equals(Object obj)//用于比较 2 个对象的内存地址是否相等,String 类对该方法进行了 重写用户比较字符串的值是否相等。 protected native Object clone() throws CloneNotSupportedException//naitive 方法,用于创建并返回 当前对象的一份拷贝。一般情况下,对于任何对象 x,表达式 x.clone() != x 为 true,x.clone().getClass() == x.getClass() 为 true。Object 本身没有实现 Cloneable 接口,所以不重写 clone 方法并且进行调用的 话会发生CloneNotSupportedException 异常。 public String toString()//返回类的名字@实例的哈希码的 16 进制的字符串。建议 Object 所有的子类都 重写这个方 法。public final native void notify()//native 方法,并且不能重写。唤醒一个在此对象监视器上等待的线 程(监视器相当于就是锁的概念)。如果有多个线程在等待只会任意唤醒一个。 public final native void notifyAll()//native 方法,并且不能重写。跟 notify 一样,唯一的区别就是 会唤醒在此对象监视器上等待的所有线程,而不是一个线程。 public final native void wait(long timeout) throws InterruptedException//native 方法,并且不能 重写。暂停线程的执行。注意:sleep 方法没有释放锁,而 wait 方法释放了锁 。timeout 是等待时间。 public final void wait(long timeout, int nanos) throws InterruptedException//多了 nanos 参数, 这个参数表示额外时间(以毫微秒为单位,范围是 0-999999)。 所以超时的时间还需要加上 nanos 毫秒。 public final void wait() throws InterruptedException//跟之前的 2 个 wait 方法一样,只不过该方法 一直等待,没有超时时间这个概念 protected void finalize() throws Throwable { }//实例被垃圾回收器回收的时候触发的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值