常见的面试题(java高级开发)

第一部分:项目相关

1、简单介绍介绍一下你在上家公司做过的项目、项目的主要流程、你所负责的模块、你在项目担任的职责
2、你在项目里面得到了学习到了什么,得到了哪些技术提升

3、有没有code review习惯,平时code review时候都会去注意哪些点
4、团队人员的组成,开发规模有多大,平时是如何迭代开发一个需求的(从产品经理到最终上线的流程)

第二部分:jdk源码相关

1、volatile的作用和底层原理、项目中或哪些地方(JDK或中间件)用到了volatile、volatile的使用场景、double check中volatile的作用是什么
2、java内存模型

3、cas的原理
4、ThreadLocal的底层原理,使用ThreadLocal需要注意什么问题,怎么去解决
5、死锁发生的原因以及如何去避免死锁
6、synchronized实现原子性的原理
7、ReentrantLock和synchronized的区别
8、ReentrantLock是怎么实现原子性的 
9、aqs的原理(如何阻塞线程,如何唤醒阻塞线程,不同类型节点Exclusive、Shared之间唤醒模式有什么区别)
10、aqs在并发包的应用
11、自旋锁(tryLock)
12、什么场景下用读写锁(ReentrantReadWriteLock)
13、ConcurrentHashMap实现线程安全的原理(put和get),对比jdk 1.8和jdk 1.7的加锁粒度

14、手写ArrayBlockingQueue的take()和put()
15、synchronized的wait(), notify(), notifyAll() vs. Reentranlock对应Condition的await(), signal(), signalAll()
16、公平锁和非公平锁
17、jdk都有哪些常见的线程池,什么情况下我们需要自定义线程池
18、线程池的构造函数的几个参数都是什么意思

19、线程池的执行流程(什么时候创建core线程、什么时候入队列、什么时候扩容到max线程、core线程和max线程在线程池任务队列take任务时有什么区别)

第三部分:JVM

1、jvm的内存区域划分,不同内存区域都有什么作用

2、双亲委派机制的作用

3、介绍下cms垃圾收集器的执行流程

4、为什么full gc会影响系统性能

第四部分:消息中间件

1、消息中间件的使用场景如何实现消息0丢失
2、如何避免消息重复消费
3、不同消息中间件之间的技术选型,都有什么特点和区别
4、如何实现消息顺序消费
5、kafka的网络通信架构的设计细节
【基于nio实现的reactor网络通信架构(Acceptor线程 + Processor线程 + Handler线程池 + RequestChannel)】

6、kafka磁盘高性能读写实现细节
(mmap + FileChannel + 写os cache + 顺序写磁盘,定期flush,consumer基于零拷贝读)
7、kafka是如何查找一条消息的(基于.index稀疏索引文件的二分查找过程)
8、kafka顺序写磁盘什么情况下会退化为随机读写磁盘
9、kafka在磁盘中都有什么文件?(.timeindex + .index + .log)
10、kafka什么地方用到了ZooKeeper

第五部分:MySQL

1、介绍下acid是什么,InnoDB是如何实现acid的?mvcc
2、B+树、聚簇索引、普通索引、回表 儒猿-石杉架构课
https://sourl.cn/bFTskZ
3、索引的优点和缺点
4、联合索引使用过程中需要注意的问题(什么情况会索引失效)
5、Innodb是如何实现行锁的
6、分库分表
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值