JAVA面试题系列3

11. 方法重载的规则?

方法名一致,参数列表中参数的顺序,类型,个数不同。 重载与方法的返回值无关,存在于父类和子类,同类中。 可以抛出不同的异常,可以有不同修饰符。

12. 方法重写的规则?

参数列表、方法名、返回值类型必须完全一致,构造方法不能被重写;声明为 final 的方法 不能被重写;声明为 static 的方法不存在重写(重写和多态联合才有意义);访问权限不能比 父类更低;重写之后的方法不能抛出更宽泛的异常

13. throw 和 throws 的区别?

throw: throw 语句用在方法体内,表示抛出异常,由方法体内的语句处理。throw 是具体向外抛出 异常的动作,所以它抛出的是一个异常实例,执行 throw 一定是抛出了某种异常。
throws: throws 语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处 理。throws 主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的 异常的类型。throws 表示出现异常的一种可能性,并不一定会发生这种异常。

14. 抽象类和接口的区别

1、接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

2、类可以实现很多个接口,但是只能继承一个抽象类 。

3、类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现 抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

4、抽象类可以在不提供接口方法实现的情况下实现接口。

5、Java 接口中声明的变量默认都是 final 的。抽象类可以包含非 final 的变量。

6、Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private,protecte 或者是 public 。

7、接口是绝对抽象的,不可以被实例化(java 8 已支持在接口中实现默认的方法)。抽象类 也不可以被实例化,但是,如果它包含 main 方法的话是可以被调用的。

15. Java 的基础类型和字节大小?

布尔型 boolean 8 位;字节型 byte 8 位; 字符型 char 16 位; 短整型 short 16 位;整形 int 32 位; 长整形 long 64 位; 浮点型 float 32 位;双精度 double 64 位;

16. 四个访问修饰符合访问级别?

Protected、 public、没有访问修饰符、private

17. String 和 StringBuffer 的区别?

String 和 StringBuffer 主要区别是性能:String 是不可变对象,每次对 String 类型进行操 作都等同于产生了一个新的 String 对象,然后指向新的 String 对象.所以尽量不要对 String 进行大量的拼接操作,否则会产生很多临时对象,导致 GC 开始工作,影响系统性能. StringBuffer 是对象本身操作,而不是产生新的对象,因此在有大量拼接的情况下,我们建 议使用 StringBuffer(线程安全).

18.HashSet 的底层实现是什么?

HashSet 的实现是依赖于 HashMap 的,HashSet 的值都是存储在 HashMap 中的。 在 HashSet 的构造法中会初始化一个 HashMap 对象,HashSet 不允许值重复。 因此,HashSet 的值是作为 HashMap 的 key 存储在 HashMap 中的,当存储的值已经存在时返 回 false。

19. 抽象类的意义?

抽象类的意义可以用三句话来概括: 1、为其他子类提供一个公共的类型 2、封装子类中重复定义的内容
千锋郑州 Java 教学部 5 3、定义抽象方法,子类虽然有不同的实现,但是定义时一致的

20. 你为什么重写 equals 时必须重写 hashCode 方法?

hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个 int 整数。这个哈 希码的作用是确定该对象在哈希表中的索引位置。如果两个对象相等,则 hashcode 一定也 是相同的如果两个对象相等,对两个对象分别调用 equals 方法都返回 true 如果两个对象有 相同的 hashcode 值,它们也不一定是相等的因此,equals 方法被覆盖过,则 hashCode 方 法也必须被覆盖。 hashCode()的默认行为是对堆上的对象产生独特值。如果没有重写 hashCode(),则该 class 的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值