当前位置: 首页 > news >正文

Java 基础高频面试题

整理了Java 面试必问的基础题覆盖基础语法、面向对象、集合、异常、多线程、JVM 等核心考点答案简洁好记适合面试突击背诵。一、Java 基础语法1. JDK、JRE、JVM 的区别JVMJava 虚拟机负责将字节码翻译成机器码实现跨平台。JREJava 运行时环境包含 JVM 核心类库只能运行 Java 程序。JDKJava 开发工具包包含 JRE 编译器 (javac) 调试工具既能运行又能开发 Java 程序。2. 和 equals () 的区别基本类型比较值引用类型比较内存地址。equals()未重写和 一样比较地址重写如 String、Integer比较内容。3. String、StringBuilder、StringBuffer 区别String不可变字符序列线程安全效率低。StringBuilder可变字符序列非线程安全效率最高。StringBuffer可变字符序列线程安全加了 synchronized效率中等。4. 重载和重写的区别重载Overload同一个类中方法名相同参数列表不同个数、类型、顺序与返回值无关。重写Override子类重写父类方法方法名、参数列表、返回值都相同子类权限不能更小不能抛出更大异常。5. final 关键字的作用修饰类类不能被继承。修饰方法方法不能被重写。修饰变量变量变为常量只能赋值一次。二、面向对象OOP6. 面向对象的四大特性封装、继承、多态、抽象封装隐藏实现细节对外提供接口。继承子类复用父类属性和方法。多态父类引用指向子类对象编译看左边运行看右边。抽象抽离公共特征用抽象类 / 接口实现。7. 接口和抽象类的区别表格特性接口抽象类继承多实现单继承方法默认 public abstractJDK8 支持默认方法可以有抽象 / 普通方法变量只能是 public static final 常量可以有普通变量构造器无有8. 多态的实现条件继承 / 实现关系方法重写父类引用指向子类对象三、集合框架高频9. List、Set、Map 的区别List有序、可重复、可通过索引访问。Set无序、不可重复。Map键值对存储Key 不可重复Value 可重复。10. ArrayList 和 LinkedList 区别ArrayList数组结构查询快增删慢线程不安全。LinkedList双向链表查询慢增删快线程不安全。11. HashMap 和 Hashtable 区别HashMap线程不安全允许 null 键 / 值效率高。Hashtable线程安全synchronized不允许 null效率低。12. HashMap 底层原理JDK7数组 链表 JDK8数组 链表 红黑树链表长度≥8 转红黑树≤6 转回链表 核心通过 hash 算法计算索引解决哈希冲突用链表 / 红黑树。13. ConcurrentHashMap 线程安全原理JDK7分段锁Segment减小锁粒度。JDK8CAS synchronized锁头节点效率更高。四、异常处理14. Checked 和 Unchecked 异常区别受检异常Checked编译期必须处理try-catch/throws如 IOException、SQLException。非受检异常Unchecked运行时异常编译不检查如 NullPointerException、ArrayIndexOutOfBoundsException。15. throw 和 throws 区别throw手动抛出一个异常对象在方法体内。throws方法声明可能抛出异常在方法签名上。16. final、finally、finalize 区别final修饰类、方法、变量不可变。finally配合 try-catch一定执行除非 JVM 退出用于释放资源。finalizeObject 方法垃圾回收前调用已废弃。五、多线程与并发17. 线程和进程的区别进程操作系统资源分配的最小单位独立内存空间。线程CPU 调度的最小单位共享进程内存。18. 创建线程的 4 种方式继承 Thread 类实现 Runnable 接口实现 Callable 接口带返回值线程池 Executors/ThreadPoolExecutor19. 线程的生命周期新建 → 就绪 → 运行 → 阻塞 → 死亡20. sleep () 和 wait () 区别sleep ()Thread 方法不释放锁时间到自动唤醒。wait ()Object 方法释放锁需 notify ()/notifyAll () 唤醒。21. synchronized 和 Lock 区别synchronizedJVM 实现自动加锁解锁不可中断非公平锁。LockAPI 层面手动加锁解锁可中断支持公平 / 非公平锁。22. 死锁的四个条件互斥条件请求与保持不可剥夺循环等待破坏任意一个即可避免死锁。六、JVM 与内存23. JVM 内存模型运行时数据区程序计数器虚拟机栈本地方法栈堆存储对象GC 主要区域方法区存储类信息、常量、静态变量24. 堆内存分代新生代Eden 两个 Survivor老年代元空间JDK8 替代永久代25. GC 垃圾回收机制判断对象死亡引用计数法、可达性分析算法垃圾回收算法标记 - 清除、标记 - 复制、标记 - 整理七、IO 流26. BIO、NIO、AIO 区别BIO同步阻塞一个连接一个线程。NIO同步非阻塞多路复用。AIO异步非阻塞回调通知。27. 字节流和字符流字节流InputStream/OutputStream处理所有文件图片、视频。字符流Reader/Writer处理纯文本文件。面试突击建议先背高频题 和 equals、HashMap、多线程、异常、面向对象。结合场景说比如问集合直接说业务中用 ArrayList 做查询、HashMap 做缓存。手写代码准备单例模式、排序、线程创建、HashMap 原理。
http://www.zskr.cn/news/1411388.html

相关文章:

  • MEMS混合固态雷达RS-M1 vs 传统机械式:在自动驾驶小车项目里到底该怎么选?
  • CrossOver容器访问外部存储:Mac驱动器映射实战指南
  • 考虑非完整边界条件的新型混合试验方法解析【附数据】
  • 作为DBA,如何快速处理Oracle连接类故障?
  • 042、蛇形走线与等长布线
  • nvm-windows 1.2.x无法安装 Node.js 14 或 16 等低版本的问题
  • 告别‘Command not found’:详解Ubuntu里ifconfig和vim命令的‘前世今生’与安装逻辑
  • 从‘data.win’到单个exe:聊聊Gamemaker 1.4 YYC编译模式到底提升了多少安全性
  • 聚力新团队 焕新再起航,2026湘潭V·乐笑口腔以专业守护口腔健康
  • 别再只盯着总电费了!聊聊NILM技术如何帮你发现家里的‘电耗子’
  • MT管理器不只是文件管理:手把手教你用它汉化一个APK(从解包到签名全流程)
  • IDE将死?Gartner的预言与Java的宿命
  • 2026 数据治理平台技术路线与梯队分析:从 AI 原生到模块化全覆盖
  • 多智能体系统协作机制:从角色定义到复杂工作流实战
  • 2026年短视频拍摄剪辑公司排名前五专业深度测评 - 羊城派
  • G-Helper终极指南:如何用轻量级工具完美控制华硕笔记本性能
  • 还在手动洗数据?Python+Claude搭建「多源报表自动清洗+智能解读」流水线,运营每月少熬3个通宵
  • 2026年成都西装定制权威指南:五大品牌深度测评与选购策略 - 品牌企业推荐师(官方)
  • 保姆级教程:手把手教你用Autosar MCAL的ICU模块测量PWM信号(基于GTM-CCU6)
  • 手把手教你:在Pspice for TI中导入Cadence自带库(解决模型缺失报错)
  • Cadence Allegro 16.6 保姆级配置指南:从环境变量到模板复用,一次搞定
  • 2026年上海西装定制权威指南:五大品牌深度测评与选购策略 - 品牌企业推荐师(官方)
  • 别再为WS2812时序发愁了!用STM32的SPI+DMA驱动,轻松实现灯带动画
  • AI聚合平台:从Token批发到智能网关的进化
  • 避开这些坑,你的RISC-V协处理器才能提速1700倍:一个集创赛获奖SOC的实战复盘
  • 2026年质量好的高分子合金电缆桥架厂家怎么选 - 品牌排行榜
  • 普通用户如何用好Gemini3.5提升日常效率实战指南
  • 构建有记忆的AI调解员:持久化智能体记忆与多策略检索实践
  • NVIDIA Profile Inspector 终极指南:解锁显卡隐藏设置,游戏性能飙升200%
  • 三步验证法:Figma中文插件如何让设计效率提升47%的深度探索