面试题百日百刷-java基础篇(六)

demo软件园 2023-05-22 20:55:49

锁屏面试题百日百刷,每个工作日坚持更新面试题。请看到最后就能获取你想要的,接下来的是今日的面试题:

1.Object类的常见方法总结

Object类是一个特殊的类,是所有类的父类。它主要提供了以下 11个方法:

public final nativeClass<?>getClass()//native方法,用于返回当前运行时对象的Class对象,使用了final关键字修饰,故不允许子类重写。

public nativeinthashCode()//native方法,用于返回对象的哈希码,主要使用在哈希表中,比如JDK中的HashMap。

publicbooleanequals(Objectobj)//用于比较2个对象的内存地址是否相等,String类对该方法进行了重写用户比较字符串的值是否相等。

protected nativeObjectclone()throwsCloneNotSupportedException//naitive方法,用于创建并返回当前对象的一份拷贝。一般情况下,对于任何对象x,表达式x.clone() != x为true,x.clone().getClass() == x.getClass()为true。Object本身没有实现Cloneable接口,所以不重写clone方法并且进行调用的话会发生CloneNotSupportedException异常。

publicStringtoString()//返回类的名字@实例的哈希码的16进制的字符串。建议Object所有的子类都重写这个方法。

public final nativevoidnotify()//native方法,并且不能重写。唤醒一个在此对象监视器上等待的线程(监视器相当于就是锁的概念)。如果有多个线程在等待只会任意唤醒一个。

public final nativevoidnotifyAll()//native方法,并且不能重写。跟notify一样,唯一的区别就是会唤醒在此对象监视器上等待的所有线程,而不是一个线程。

public final nativevoidwait(longtimeout)throwsInterruptedException//native方法,并且不能重写。暂停线程的执行。注意:sleep方法没有释放锁,而wait方法释放了锁 。timeout是等待时间。

public finalvoidwait(longtimeout,intnanos)throwsInterruptedException//多了nanos参数,这个参数表示额外时间(以毫微秒为单位,范围是0-999999)。所以超时的时间还需要加上nanos毫秒。

public finalvoidwait()throwsInterruptedException//跟之前的2个wait方法一样,只不过该方法一直等待,没有超时时间这个概念

protectedvoidfinalize()throwsThrowable{ }//实例被垃圾回收器回收的时候触发的操作

2.Java序列化中如果有些字段不想进行序列化,怎么办?

对于不想进行序列化的变量,使用 transient关键字修饰。

transient关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被 transient修饰的变量值不会被持久化和恢复。transient只能修饰变量,不能修饰类和方法。

了解更多请点我头像或到我的主页去获得,谢谢

0 阅读:18

demo软件园

简介:分享面试题、软件、学习资源、源码相关内容