# 笔记 **Repository Path**: beginner322/note ## Basic Information - **Project Name**: 笔记 - **Description**: Java 常见面试题 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-02-02 - **Last Updated**: 2023-02-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Java基础 1. List set map 2. Integer缓存 3. HashMap 4. ConcurrentHashMap 5. String StringBuffer StringBuilder 6. sleep & wait join 7. 什么是字节码?采用字节码的好处是什么? 8. 接口和抽象类的区别 8. Error 和 Exception 有什么区别? 8. try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally{}里的代码会不会被执行,什么时候被执行,在 return 前还是后? ## Spring 1. IOC DI AOP 2. BeanFactory和ApplicationContext有什么区别? 3. Spring Bean的生命周期 4. 事务失效场景 5. 事务传播机制 6. SpringMVC 工作流程 7. Spring Boot 自动配置原理? 8. Cglib和JDk动态代理的区别 9. 转发与重定向的区别(forward与redirect) 10. 循环依赖 ## MyBatis 1. `#{}`与`${}` 2. 一级缓存与二级缓存 3. namespace与id 将xml中的sql与DAO中的方法映射 4. MyBatis有哪些事务管理方式? 5. MyBatis如何实现动态SQL? 6. MyBatis有哪些缓存机制? 7. Spring是如何控制SqlSession的创建和销毁 8. MyBatis表名与实体属性名不一致如何解决? ## MySQL 1. 索引失效 2. 隔离级别(以及产生的问题) 3. 储存引擎(Innodb, MyISAM) 4. 什么是最左前缀原则?什么是最左匹配原则 5. count(1)和count(*) count(字段) 6. 索引底层数据结构(b+树) 7. 聚簇索引与非聚簇索引 8. 索引覆盖 ## Redis 1. RDB 和 AOF 机制 2. 数据类型及应用场景 3. 缓存雪崩、缓存穿透、缓存击穿 4. Redis的内存管理机制及淘汰策略 5. 基于Redis的分布式锁(setnx) 6. redis6种回收策略 7. 数据一致性 ## JVM 1. jvm内存结构(虚拟机栈、本地方法栈、程序计数器、堆、方法区) 2. 类加载器、双亲委派模型 3. 垃圾回收算法(标记清除算法、标记整理算法、复制算法) 4. 垃圾回收器(CMS、G1) 5. 如何判断对象可以被回收(可达性分析算法、引用计数法)