沙漏笔记Logo 沙漏笔记
沙漏笔记Logo 沙漏笔记

导航

  • 沙漏笔记
  • 工作流教程
  • Java面试专栏
  • 沙漏导航
  • 软件下载
  • 资讯文章

面试题库

  • 1. Java基础核心
  • 2. 集合框架
  • 3. 面向对象
  • 4. 多线程并发
  • 5. JVM虚拟机
  • 6. IO流与NIO
  • 7. Java8新特性
  • 8. 进阶知识点

Java面试题大全

Java高频面试题+标准答案+源码解析+面试技巧,Java面试通关必备

1. Java基础核心(面试开篇必问)

  • String为什么被设计成不可变的?(好处+源码)
  • Java中哪些类是不可变类?设计规范是什么?
  • equals() 和 == 的区别?重写equals必重写hashCode?
  • 8种基本数据类型及包装类,自动装箱/拆箱原理
  • final、finally、finalize的区别及使用场景
  • String、StringBuffer、StringBuilder区别及效率排序
  • Integer缓存池范围,127相等128不等原因
  • Java异常体系,检查型和非检查型异常区别

2. 集合框架(重中之重,分值最高)

  • HashMap底层原理(JDK8),JDK7与JDK8区别
  • HashMap为什么线程不安全?加载因子0.75原因
  • HashMap哈希冲突解决,红黑树转换条件
  • ArrayList和LinkedList区别+性能测试+使用场景
  • ArrayList扩容机制,初始容量及扩容倍数
  • HashSet底层实现,保证元素唯一的原理
  • ConcurrentHashMap底层原理,线程安全实现方式
    • JDK7与JDK8的实现差异对比
  • HashMap和HashTable的区别,HashTable为何被淘汰

3. 面向对象OOP(Java灵魂考点)

  • 面向对象三大特性:封装、继承、多态(案例)
  • 接口和抽象类的区别,JDK8接口新特性
  • 重载(Overload)和重写(Override)的区别及规则
  • this和super关键字的区别及使用场景
  • Java为什么不支持多继承,接口为何可以多实现
  • 单例模式7种写法,线程安全的单例实现

4. 多线程与并发编程(面试分水岭)

  • Java创建线程的4种方式,优缺点及使用场景
  • 线程的生命周期,6种状态及转换关系
  • synchronized和Lock的区别,Lock的优势
  • 线程池原理及核心参数,拒绝策略有哪些
  • 死锁产生的条件,如何避免死锁
  • volatile关键字作用,能否保证原子性
  • sleep()和wait()的区别,notify和notifyAll

5. JVM虚拟机(大厂必问加分项)

  • JVM内存结构,堆、栈、方法区作用及存储内容
  • GC垃圾回收机制,垃圾回收算法及回收器
  • Java类加载机制,双亲委派模型的作用
  • 堆内存分代,Minor GC和Full GC的区别
  • 内存泄漏与内存溢出,排查方法

6. IO流与NIO(开发必用)

  • BIO、NIO、AIO的区别及使用场景
  • 字节流和字符流的区别,常用流对象
  • 序列化与反序列化的原理及实现

7. Java8新特性(近3年必考)

  • Lambda表达式语法及使用场景
  • Stream流式编程常用方法详解
  • 函数式接口及常用内置接口
  • Optional类解决空指针异常的用法

8. Java进阶知识点(查漏补缺)

  • Java反射机制的原理、优缺点及使用场景
  • 注解的自定义及使用,元注解作用
  • 值传递和引用传递,Java到底是哪种
  • static关键字的作用,静态方法与非静态方法