Java基础高频的面试题,看这一篇就够了
需积分: 0 66 浏览量
更新于2023-02-22
收藏 586KB PDF 举报
Java基础高频面试题总结
一、Java基础知识点
1. Java中的8种基本数据类型有哪些?分别占几个字节?
Java提供了八大基本数据类型,分别是整型、浮点型、字符型和布尔型。每个基本数据类型都有其对应的包装类型。基本类型之间允许低精度对象向高精度对象转化,但不能反之。
2. 接口和抽象类的区别
相同点:两者都不能实例化;可以拥有抽象方法。
区别:
* 抽象类定义的关键字是abstract class,接口定义的关键字是interface。
* 属性上,抽象类可以有静态变量、常量和成员变量,接口只能有常量。
* 抽象方法可以有普通方法,而接口jdk1.8之前只能有抽象方法(1.8之后,增加了静态方法和默认方法)。
* 抽象方法可以有构造方法,接口不可以有构造方法。
* 一个类只能单继承一个父类,而一个接口可以继承多个父接口,同时,一个类可以实现多个接口却没有实现多个父类这一说法。
二、集合框架
1. ArrayList和LinkedList的区别
* ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。
* 对于随机访问ArrayList要优于LinkedList。
* 对于插入和删除操作,LinkedList要优于ArrayList。
2. TreeSet和HashSet的区别
* HashSet是基于HashMap实现的,TreeSet是基于TreeMap实现的。
* HashSet是无序的,而TreeSet是一个有序的二叉树。
* HashSet不能保证集合的迭代顺序且允许使用null元素,同时还不是并发安全的。
* TreeSet可以保证集合元素迭序有序,但是元素必须实现Comparable接口或Comparator。
三、其他知识点
1. final、finalize和finally的区别
* final修饰变量,变量在初始化以后不能被修改。
* final修饰方法,方法不能被子类重写。
* final修饰类,类不能被继承。
* finalize方法:当一个对象是不可达对象的时候,GC会在某一个不确定的时候回收该对象,在回收该对象之前,JVM会调用该对象finalize方法以释放该对象占用的其他资源,但不建议使用finalize方法,因为finalize的执行时机是不确定的。
* finally用在try-catch或try块之后,无论try或catch中是否有异常,其中的代码一定会执行。
2. ==和equals的区别
* ==比较基本数据类型时,比较的是两个数值是否相等。
* ==比较引用类型是,比较的是对象的内存地址是否相等。
* equals()没有重写时,Object默认以==来实现,即比较两个对象的内存地址是否相等。
* 重写以后,按照对象的内容进行比较。
3. String、StringBuffer和StringBuilder的区别
* String:不可变字符序列,效率低,但是复用率高。
* StringBuffer和StringBuilder:可变字符序列,效率高(增删)。
* StringBuffer:可变字符序列、效率较高(增删)、线程安全。
* StringBuilder:可变字符序列、效率最高、线程不安全。
本文总结了Java基础高频面试题,包括基本数据类型、接口和抽象类、集合框架、final、finalize和finally、==和equals、String、StringBuffer和StringBuilder等知识点。

今儿晚不熬夜
- 粉丝: 2
最新资源
- 电气工程及其自动化的发展分析.docx
- 企业如何组建适合自身发展的营销网络.doc
- PLC控制的运料小车装置MCGS组态画面设计方案.doc
- 刍议公路工程施工项目管理技术的应用.docx
- 建设项目管理动态成本管理系统说明书.doc
- VB酒店管理与实现餐饮管理子.doc
- 天然气长输管网大数据管理.docx
- 人工智能技术与学前教育的融合路径探究.docx
- 基于PLC的机械手设计.doc
- 以能力培养为导向的大学计算机基础课程教学改革与实践探讨.docx
- PLC变频器设计方案.doc
- ATS单片机的智能冲击电流计的设计与开发.doc
- 转本计算机模拟题(参考答案).doc
- 论电子商务认证法律关系.docx
- 数据库课程设计排版示例.doc
- 企业资产负债表(Excel表格通用模板).xls