Java开发-个人面经高频知识点整理
总结一下自己在刚刚的春招面试中常常碰到的题目,希望可以帮助到大家。我分类别向大家介绍,方便大家观看。
一.Java基础
1. string的相关构造方法2. 进程与线程的区别
3. 高并发HashMap的环是如何产生的
4. volatile作用(必考)
5. Atomic类如何保证原子性(CAS操作)(必考)
6. synchronized和Lock的区别(必考)
7. ThreadLocal的原理和实现
8. 为什么要使用线程池(必考)
9. 核心线程池ThreadPoolExecutor的参数(必考)
10. ThreadPoolExecutor的工作流程(必考)
11. 如何控制线程池线程的优先级
12. 线程之间如何通信
13. Boolean占几个字节
14. jdk1.8/jdk1.7都分别新增了哪些特性
15. Exception和Error
16. Object类内的方法
二、JVM
1. 运行时数据区域(内存模型)(必考)2. 垃圾回收机制(必考)
3. 垃圾回收算法(必考)
4. Minor GC和Full GC触发条件
5. GC中Stop the world(STW)
6. 各垃圾回收器的特点及区别
7. 双亲委派模型
8. JDBC和双亲委派模型关系
9. JVM锁优化和锁膨胀过程
10.介绍下垃圾收集机制(在什么时候,对什么,做了什么)。
11.垃圾收集有哪些算法,各自的特点。
12.类加载的过程。
13.双亲委派模型。
14.有哪些类加载器。
15.能不能自己写一个类叫java.lang.String。
三、集合相关的问题
1.HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现。
2.HashMap和Hashtable的区别。
3.ArrayList、LinkedList、Vector的区别。
4.HashMap和ConcurrentHashMap的区别。
5.HashMap和LinkedHashMap的区别。
6.HashMap是线程安全的吗?ConcurrentHashMap是怎么实现线程安全的?
四、多线程并发相关问题
1.创建线程的3种方式。
2.什么是线程安全。
3.Runnable接口和Callable接口的区别。
4.wait方法和sleep方法的区别。
5.synchronized、Lock、ReentrantLock、ReadWriteLock。
6.介绍下CAS(无锁技术)。
7.volatile关键字的作用和原理。
8.什么是ThreadLocal。
9.创建线程池的4种方式。
10.ThreadPoolExecutor的内部工作原理。
11.分布式环境下,怎么保证线程安全。
五、Redis
1. Redis的应用场景
2. Redis支持的数据类型(必考)
3. zset跳表的数据结构(必考)
4. Redis的数据过期策略(必考)
5. Redis的LRU过期策略的具体实现
6. 如何解决Redis缓存雪崩,缓存穿透问题
7. Redis的持久化机制(必考)
8. Redis的管道pipeline
2. Redis支持的数据类型(必考)
3. zset跳表的数据结构(必考)
4. Redis的数据过期策略(必考)
5. Redis的LRU过期策略的具体实现
6. 如何解决Redis缓存雪崩,缓存穿透问题
7. Redis的持久化机制(必考)
8. Redis的管道pipeline
六、MySQL
1. 事务的基本要素
2. 事务隔离级别(必考)
3. 如何解决事务的并发问题(脏读,幻读)(必考)
4. MVCC多版本并发控制(必考)
5. binlog,redolog,undolog都是什么,起什么作用
6. InnoDB的行锁/表锁
7. myisam和innodb的区别,什么时候选择myisam
8. 为什么选择B+树作为索引结构(必考)
9. 索引B+树的叶子节点都可以存哪些东西(必考)
10. 查询在什么时候不走(预期中的)索引(必考)
11. sql如何优化
12. explain是如何解析sql的
13. order by原理
2. 事务隔离级别(必考)
3. 如何解决事务的并发问题(脏读,幻读)(必考)
4. MVCC多版本并发控制(必考)
5. binlog,redolog,undolog都是什么,起什么作用
6. InnoDB的行锁/表锁
7. myisam和innodb的区别,什么时候选择myisam
8. 为什么选择B+树作为索引结构(必考)
9. 索引B+树的叶子节点都可以存哪些东西(必考)
10. 查询在什么时候不走(预期中的)索引(必考)
11. sql如何优化
12. explain是如何解析sql的
13. order by原理
14.给题目让你手写SQL。
15.有没有SQL优化经验。
16.Mysql索引的数据结构。
17.Explain的Type列有哪几种值。
18.SQL关键字的执行顺序。
19.有哪几种索引。
20.什么时候该(不该)建索引。
21.Explain包含哪些列。
七、框架相关问题
1.Hibernate和Mybatis的区别。
2.Spring MVC和Struts2的区别。
3.Spring用了哪些设计模式。
4.Spring中AOP主要用来做什么。
5.Spring注入bean的方式。
6.什么是IOC,什么是依赖注入。
7.Spring是单例还是多例,怎么修改。
8.Spring事务隔离级别和传播性。
9.介绍下Mybatis/Hibernate的缓存机制。
10.Mybatis的mapper文件中#和$的区别。
11.Mybatis的mapper文件中resultType和resultMap的区别。
12.Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的。
13. Spring的IOC/AOP的实现(必考)
14. 动态代理的实现方式(必考)
15.Spring如何解决循环依赖(三级缓存)(必考)
16. Spring的后置处理器
17. Spring的@Transactional如何实现的(必考)
18.Spring的事务传播级别
19. BeanFactory和ApplicationContext的联系和区别
八、其他问题
1.介绍下栈和队列。
2.==和equals的区别。
3.常量池相关问题。
4.int和Integer的自动拆箱/装箱相关问题。
5.重载和重写的区别。
6.String和StringBuilder、StringBuffer的区别。
7.介绍下B树、二叉树。
8.ajax的4个字母分别是什么意思。
9.常用的linux命令。