2024年java底层基础面试题

java底层基础面试题最近整理了 20 道 Java 基础面试题 大家一起加油哈 1 ArrayList 和 LinkedList 有什么区别 可以从它们的底层数据结构 效率 开销进行阐述哈 ArrayList 是数组的数据结构 LinkedList 是链表的数据结构 随机访问的时候 ArrayList 的效率比较高 因为 LinkedList 要移动指针 而 ArrayList 是基于索引 index 的数据结构 可以直接映射到

大家好,我是讯享网,很高兴认识大家。



最近整理了20道Java基础面试题,大家一起加油哈

1. ArrayList和LinkedList有什么区别?

可以从它们的底层数据结构、效率、开销进行阐述哈

  • ArrayList是数组的数据结构,LinkedList是链表的数据结构。
  • 随机访问的时候,ArrayList的效率比较高,因为LinkedList要移动指针,而ArrayList是基于索引(index)的数据结构,可以直接映射到。
  • 插入、删除数据时,LinkedList的效率比较高,因为ArrayList要移动数据。
  • LinkedList比ArrayList开销更大,因为LinkedList的节点除了存储数据,还需要存储引用。

2. final, finally, finalize的区别

  • final用于声明属性,方法和类, 分别表示属性不可变, 方法不可覆盖, 类不可继承.
  • finally是异常处理语句结构的一部分,表示总是执行.
  • finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等. JVM不保证此方法总被调用.

3. 重写和重载的区别

  • 作用范围:重写的作用范围是父类和子类之间;重载是发生在一个类里面
  • 参数列表:重载必须不同;重写不能修改
  • 返回类型:重载可修改;重写方法返回相同类java底层基础面试题型或子类
  • 抛出异常:重载可修改;重写可减少或删除,一定不能抛出新的或者更广的异常
  • 访问权限:重载可修改;重写一定不能做更严格的限制

4. Java 8的接口新增了哪些特性?

JDK8 的新特性

  • lambada表达式
  • 函数式接口
  • 方法引用
  • 默认方法
  • Stream API
  • Optional
  • Date Time API(如LocalDate)
  • 重复注解
  • Base64
  • JVM的新特性(如元空间Metaspace代替持久代)

5. 两个对象的hashCode()相同,则 equals()是否也一定为 true?

两个对象equals相等,则它们的hashcode必须相等,如果两个对象的hashCode()相同,则equals()不一定为true。

hashCode 的常规协定:

在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。

小讯
上一篇 2024-12-26 20:30
下一篇 2024-12-26 11:13

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/8327.html