MI 2021-07-09

一面

  • 问的设计题偏多

  • 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 调用 哪些会回滚 哪些不会回滚

算法:

  1. 求树的高度(递归写的,时间用的很短,给了第二道题)
  2. 非递归写树的后序遍历

四面:

  • 聊项目

  • JDK版本是什么? 有没有了解过JDK 9 11 的新特性

  • 线上垃圾处理器是什么 ?

  • G1与CMS有什么区别

  • 因为线上问题,需要调整JVM参数的情况有没有?

  • 线上CPU100%,怎样排查

  • jstack定位线程问题的时候,怎样去分析?

  • 线程有哪些状态 什么时候会是blocked状态?

  • hashMap底层原理?

  • set的底层数据结构

  • 项目中比较有挑战的地方是什么?

算法:

  • 300. 最长递增子序列

你可能感兴趣的:(MI 2021-07-09)