写点什么

Java 程序员经典面试题集大全 (六)

  • 2021 年 11 月 11 日
  • 本文字数:1674 字

    阅读完需:约 5 分钟

垃圾回收前执行的方法


(6)protected native Object clone() throws java.lang.CloneNotSupportedException


克隆


(7)public final void wait() throws java.lang.InterruptedException


多线程中等待功能


(8)public final native void notify()


多线程中唤醒功能


(9)public final native void notifyAll()


多线程中唤醒所有等待线程的功能


28、private/默认/protected/public 权限修饰符的区别




<table border="1" cellpadding="1" cellspacing="1" style="width:600px;"><tbody><tr><td style="text-align:center;"></td><td style="text-align:center;"><strong>同一个类</strong></td><td style="text-align:center;"><strong>同一个包</strong></td><td style="text-align:center;"><strong>子类</strong></td><td style="text-align:center;"><strong>所有类</strong></td></tr><tr><td style="text-align:center;"><strong>private</strong></td><td style="text-align:center;">?</td><td style="text-align:center;"></td><td style="text-align:center;"></td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><strong>defailt</strong></td><td style="text-align:center;">?</td><td style="text-align:center;">?</td><td style="text-align:center;"></td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><strong>protected</strong></td><td style="text-align:center;">?</td><td style


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


="text-align:center;">?</td><td style="text-align:center;">?</td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><strong>public</strong></td><td style="text-align:center;">?</td><td style="text-align:center;">?</td><td style="text-align:center;">?</td><td style="text-align:center;">?</td></tr></tbody></table>


类的访问权限只有两种


  1. public 公共的:可被同一项目中所有的类访问。 (必须与文件名同名)

  2. **default 默认的:**可被同一个包中的类访问。


成员(成员变量或成员方法)访问权限共有四种:


  1. **public?公共的:**可以被项目中所有的类访问。(项目可见性)

  2. **protected?受保护的:**可以被这个类本身访问;同一个包中的所有其他的类访问;被它的子类(同一个包以及不同包中的子类)访问。(子类可见性)

  3. **default?默认的:**被这个类本身访问;被同一个包中的类访问。(包可见性)

  4. **private?私有的:**只能被这个类本身访问。(类可见性)


29、继承条件下构造方法的执行过程



继承条件下构造方法的调用规则如下:

  • **情况 1:**如果子类的构造方法中没有通过 super 显式调用父类的有参构造方法,也没有通过 this 显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,写不写“super();”语句,效果是一样的。

  • **情况 2:**如果子类的构造方法中通过 super 显式调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法。

  • **情况 3:**如果子类的构造方法中通过 this 显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。


**特别注意的是,**如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类 Object 类的无参构造方法为止。


30、==和 equals 的区别和联系



“==”是关系运算符,equals()是方法,同时他们的结果都返回布尔值;

“==”使用情况如下:


a) 基本类型,比较的是值


b) 引用类型,比较的是地址


c) 不能比较没有父子关系的两个对象


equals()方法使用如下:


a) 系统类一般已经覆盖了 equals(),比较的是内容。


b) 用户自定义类如果没有覆盖 equals(),将调用父类的 equals (比如是 Object),而 Object 的 equals 的比较是地址(return (this == obj);)


c) 用户自定义类需要覆盖父类的 equals()


注意:Object 的==和 equals 比较的都是地址,作用相同。




Java 基础不扎实的同学,再好好学一下哦~

评论

发布
暂无评论
Java程序员经典面试题集大全 (六)