文章目录
- Java基础
- JVM
- 多线程
- Spring
- Spring Boot
- 数据库与SQL
- 分布式系统
- 其他
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协议等。