活动介绍

Java基础高频的面试题,看这一篇就够了

preview
需积分: 0 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等知识点。
身份认证 购VIP最低享 7 折!
30元优惠券