开始先是手撕算法两道
操作系统 和 数据结构
常用算法
数据结构
Jvm
使用框架、底层原理
给大家分享一个Github仓库,上面有大彬整理的300多本经典的计算机书籍PDF,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,可以star一下,下次找书直接在上面搜索,仓库持续更新中~
********
MySql
redis
Java基础
计网、Linux
Java基础加深、线程、锁、数据机构等等
框架Spring,代理
收尾的小问题
1、聊项目
2、线程的几种状态
3、线程池的状态
4、线程池的运行过程
5、如何合理地配置线程池
6、怎么实现阻塞队列
7、怎么监控线程池的运行状态,答的用一些线程监控的工具,面试官说指代码层面上,只争对线程池,没答上
线程池执行类ThreadPoolExecutor给了相关的API来监控某一个线程池的执行状态,能实时获取线程池当前活动线程数、正在排队线程数、已执行线程数、总线程数等。
ThreadPoolExecutor tpe = ((ThreadPoolExecutor) es); while (true) { System.out.println(); int queueSize = tpe.getQueue().size(); System.out.println("当前排队线程数:" + queueSize); int activeCount = tpe.getActiveCount(); System.out.println("当前活动线程数:" + activeCount); long completedTaskCount = tpe.getCompletedTaskCount(); System.out.println("执行完成线程数:" + completedTaskCount); long taskCount = tpe.getTaskCount(); System.out.println("总线程数:" + taskCount); Thread.sleep(3000); }
8、java中有几种锁
9、锁升级的过程(自旋的缺点,CAS有什么不足)
10、对象头的结构
11、synchronized和ReentrantLock区别
12、ReentrantLock是怎么实现的,讲到AQS,顺便说了AQS
13、还有哪些基于AQS的同步工具
14、volatile作用
15、volatile怎么保证可见性和防止指令重排序
16、mysql的隔离级别
17、事务acid
18、mysql如何保证acid
19、redo log和undo log区别
20、redo log和undo log是如何生成的(这块细节忘了,只说了先写内存,然后再刷盘)
21、介绍几种消息队列
22、说说rabittmq架构(说了分为虚拟机、交换机和队列,然后说了下消息的传递过程,面试官否认了,说这只是应用层面)
23、jvm的内存模型
24、对象什么情况会进去老年代
25、spring ioc aop
26、注解底层怎么实现的(动态代理)
27、注解失效有哪些原因(自己还经历过@Transaction失效的bug的,当时没答上来,被自己气死)
28、bean的加载过程
算法:有序数组生成平衡二叉树,当时已满60分钟,面试官给了5分钟的时间限制,看我思考了一会,问我有没有思路,我说暂时还没,然后就换了一道题
1、聊项目
2、mysql默认隔离级别
3、如何实现可重复读
4、如何解决幻读
5、间隙锁和nextkey锁
6、mysql锁是锁的什么(索引)
7、mysql的索引结构,有什么优点
8、怎么实现读写分离
9、主从复制是怎么实现同步的,答传bin log文件,后续数据更新怎么同步,答mysq不了解,但我知道redis主从复制后续是通过一个复制缓存区来记录新增的命令,通过发送这些命令实现同步
10、说说redis架构(单线程,io多路复用)
11、redis的底层数据结构知道吗(只知道用到了跳表,然后说了下跳表)
12、缓存穿透和缓存雪崩,解决方法
13、缓存和数据库怎么保证一致性
14、说说threadlocal怎么实现的
15、threadlocalmap中key为啥要用弱引用,key被gc后value怎么办
16、说说四种引用
17、spring事务传播机制
18、spring如何解决循环依赖
19、说说tcp协议
20、tcp如何保证不会接受重复的报文
21、tcp如何保证有序
算法:lc124. 二叉树中的最大路径和
部门:商业化技术部
反问:对应届生的要求。
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~
********
如果访问不了Github,可以访问*******。
*******
#java##java面经#