2025Java面试八股文

发布于:2025-06-21 ⋅ 阅读:(17) ⋅ 点赞:(0)


Java基础

  • 自动装箱与拆箱:Java中基础数据类型与包装类之间的转换。例如,Integer x = 1; 是装箱,int y = x; 是拆箱。
  • Object类常用方法:如clone()getClass()wait()notify()等。
  • 同步与异步、阻塞与非阻塞:同步调用需等待结果返回,异步调用可通知结果;阻塞调用会挂起线程,非阻塞调用不会。
  • 序列化与反序列化:序列化是将对象转换为字节序列,反序列化是将字节序列恢复为对象。

JVM

  • 堆与栈的区别:栈内存地址连续,性能快,大小固定;堆内存不连续,大小不固定。
  • 垃圾回收机制:JVM通过垃圾回收器(如G1、ZGC)自动回收不再使用的对象,减少内存泄漏。

多线程

  • synchronized原理:基于Java对象锁,用于同步方法或代码块,防止多个线程同时访问共享资源。
  • ReentrantLock与synchronized对比:ReentrantLock功能更强大,支持公平锁、中断线程等;synchronized更简单。
  • 线程池的使用与异常处理:线程池可复用线程,提高性能;任务执行异常时可通过Future或自定义RejectedExecutionHandler处理。

Spring

  • Spring框架的核心模块:包括Spring Core、Spring AOP、Spring ORM等。
  • IOC与DI:控制反转(IOC)和依赖注入(DI)是Spring的核心概念,用于管理对象的生命周期和依赖关系。
  • Bean的生命周期:从创建到销毁,包括实例化、属性注入、初始化、使用和销毁。
  • 事务管理:Spring支持声明式事务管理,通过注解或XML配置事务属性。

Spring Boot

  • 自动配置原理:Spring Boot通过@SpringBootApplication注解启动自动配置,根据类路径中的依赖自动配置相关组件。
  • 自定义Starter:通过创建自定义的@Configuration类和META-INF/spring.factories文件,实现自定义的自动配置。

数据库与SQL

  • MySQL索引优化:B+树是MySQL索引的常用数据结构,优化索引可提高查询性能。
  • 事务的隔离级别:包括读未提交、读已提交、可重复读、串行化,不同级别对并发和性能的影响不同。

分布式系统

  • 分布式锁的实现:基于Redis或Zookeeper实现分布式锁,确保在分布式系统中对共享资源的互斥访问。
  • 微服务设计模式:如API网关模式、CQRS模式、事件溯源模式等。

其他

  • 设计模式:如单例模式、工厂模式、策略模式等在Java开发中的应用。
  • 网络编程基础:包括TCP/IP协议栈、HTTP/HTTPS协议等。

网站公告

今日签到

点亮在社区的每一天
去签到