一面
-
问的设计题偏多
-
Redis 缓存热点数据 热点数据指的是什么?
-
Redis缓存数据量关注过吗?
-
如果全部缓存到Redis里,是怎样的一个量级
-
Redis是否提供了完整的监控界面
-
产品有个需求,需要看客户端的可用性 ,并不是打到后端的可用性,该怎样设计?
前端埋点, 服务端要接收到前端的埋点数据。 -
前端如何把数据传输给后端,后端暴露一个接口,
-
如果前端失败的埋点因为网络原因,未能传输给后端,这种该怎么解决?
-
Guava令牌桶限流 ,除了限流 还有其他的功能了解吗。
-
数组和链表的实现是什么?增删改查分别的时间复杂度,空间复杂度
-
HashMap的底层实现?
-
什么是红黑树?做这种红黑的目的是什么?
-
多线程,项目中的场景是什么?
-
线程池,countDownLatch 分别是在哪里用的?
-
如果给Jenkins发送stop 一直没有stop成功,异常是怎样处理的?
-
如果有原子性的要求,该怎样处理
-
跨数据源的原子性保证该怎样实现?分布式事务
-
有没有因为性能问题而使用多线程?使用多线程是否一定能提高性能? 如果是单核CPU,即使起了多线程,也是不同线程上下文切换。会影响性能
-
自定义线程池的参数,该出于什么考虑来制定各个参数的?
-
G1垃圾回收器。CMS和G1分别适用什么场景。
-
parallel和G1分别适用什么场景。
Parallel 关注吞吐量为目标的垃圾收集器,也是server模式下的默认收集器配置,对吞吐量的关注主要体现在年轻代Parallel Scavenge收集器上。
CMS 是以关注延迟为目标、十分优秀的垃圾回收算法,开启后,年轻代使用STW式的并行收集,老年代回收采用CMS进行垃圾回收,对延迟的关注也主要体现在老年代CMS上。
G1垃圾收集器也是以关注延迟为目标、服务器端应用的垃圾收集器,被HotSpot团队寄予取代CMS的使命,也是一个非常具有调优潜力的垃圾收集器。虽然G1也有类似CMS的收集动作:初始标记、并发标记、重新标记、清除、转移回收,并且也以一个串行收集器做担保机制,但单纯地以类似前三种的过程描述显得并不是很妥当。
JVM从入门到入土之详解G1垃圾回收器
万字详解,一文带你掌握 JVM 垃圾回收!
-
缓存穿透和缓存雪崩是怎样处理?
-
布隆过滤器 以及原理。
算法:
- 代码实现String indexOf()方法
二面:
-
项目聊得比较多
-
实时可用计算平台 Storm与Flink、 Spark Streaming各有什么优缺点
-
Hashcode方法如果直接return 1; 在hashmap中会发生什么情况?
-
hashcode如果直接return1 , equals方法正常写,会出现什么问题?
-
装饰器模式和适配器模式有啥区别?策略模式和状态模式有啥区别?
-
topK怎么实现,优先级队列的时间复杂度是多少,k的大小在时间复杂度中有体现吗?小顶堆排序时间复杂度是多少
-
set底层数据结构是啥,具体是怎么实现的?
-
红黑树,如果用一句话概括最主要的特点,该怎么总结
-
B+树与B树的区别
算法:
深拷贝二叉树
三面:
-
项目架构图画一下 gone与其他第三方组件框架的关系是怎样的?
-
讲讲Java内存模型JMM happen-before原则说一下
-
讲讲Java 锁的实现以及原理
-
synchronize锁升级的过程,对象头包含哪些东西,轻量级锁 偏向锁 markword中存放的到底是什么?
-
重量级锁会有系统调用吗?
-
AQS 里面stat和队列分别存放的什么东西?
-
一条SQL执行过程是什么?
-
索引为什么要用B+树,B+树和B树有什么区别?B+树为什么只在叶子节点上存数据
-
画一个索引的底层数据结构,画一个三层高的B+树
-
MVCC机制原理
-
MYSQL怎样解决select for update,select in share mode的幻读问题
-
spring事务传播级别 nested内部如果抛出异常会怎样,外部抛出异常会怎样? 具体事例,f1 f2 调用 哪些会回滚 哪些不会回滚
算法:
- 求树的高度(递归写的,时间用的很短,给了第二道题)
- 非递归写树的后序遍历
四面:
-
聊项目
-
JDK版本是什么? 有没有了解过JDK 9 11 的新特性
-
线上垃圾处理器是什么 ?
-
G1与CMS有什么区别
-
因为线上问题,需要调整JVM参数的情况有没有?
-
线上CPU100%,怎样排查
-
jstack定位线程问题的时候,怎样去分析?
-
线程有哪些状态 什么时候会是blocked状态?
-
hashMap底层原理?
-
set的底层数据结构
-
项目中比较有挑战的地方是什么?
网友评论