7.25 米哈游提前批一面
最近想整理一下面经,为自己积攒下好运,希望秋招一切顺利!
自我介绍
一,背景相关
- 我看你这几段实习的话,基本上都是三个月一期,可以大概聊一聊。为什么是这样的吗?
- 那你在得物实习的时候 2 月份到 5 月份。你上课是怎么解决这个问题的?不用上课吗?
二、八股
- 介绍一下 Java 里面的 map 的一个实现。
- 那Hashmap 是线程安全的吗?如果我并发的去读写这个Hashmap 会发生什么?
- 可以大概讲一讲concurrent Hashmap 它是怎么解决并发读写的问题的吗?
- 你刚讲到 NODE 数组 concurrent Hashmap 1.8 之后的那个自旋的那个方式,有大概去了解过吗?它是怎么处理的?就详细一点介绍。
- 然后你刚提到CAS,是吧?可以大概介绍一下 CAS 是一个什么概念?
- CAS是怎么去保证它的原子性的呢?就是为什么就是 CAS 能够保证它的原子性?它是基于什么的?就谁提供的这个保证。追问:CAS失败的话会如何自旋呢
- 锁的实现的话大概有哪几种方式啊?(sychornize和ReenterLock)
- 你刚提的可重入是一个大概什么样的概念?就是为什么叫可重入的锁,然后它跟就相当于普通的锁可能有什么区别。
- 你有去了解过,就是 Java 里面的这些锁,就是 Java 自己实现的,Java 里面还有哪些锁,除了可重入锁和sychornize。
- 不局限于Java,编程语言里面可能有的锁有哪些锁,就锁的分类。
- 乐观锁为什么是叫乐观锁,解释一下?
- 然后你刚刚提到 Redis 分布式锁,然后如果你要来实现一个 Redis 分布锁的话,你会怎么来实现?
- 你要实现一个 Redis 锁的话,你在加锁解锁的时候是怎么操作的?然后可能有一些什么注意事项,一些边界情况需要考虑,就之前有了解过吗?就如果你不太记得了的话,你就直接说不太记得了就可以。(不清楚什么边界情况?)
- 那你刚刚提到缓存,就缓存的话,你在使用缓存的时候有了解过,就可能缓存可能会有比较经典的几个问题,是哪些问题吗?(三兄弟)
- 布隆过滤器你有大概了解过它是一个什么样的东西吗?然后有了解过它的特性是什么样子的,就用在你刚刚那个场景。
- 然后那接下来看一个 MySQL 的一个问题,然后我给你一个索引,你来看一下建索引,这个怎么建?这个 SQL 你会怎么建索引?
- 为什么 a c, b c 能够走到索引, ABC 找不到索引是为什么?
- 可以介绍一下 MySQL 的事物级别有哪些吗?分别讲一下,他们可能就是每个级别他们解分别解决了什么问题吗。
- 幻读是什么概念,这个跟不可重复读有什么差别啊?
- TCP 的相关的一个建联的一个过程以及断联的一个过程,还记得吗?三次握手,简单描述一下。
- 就TCP 相比UDP。它们的差异是啥?
- 讲一下TCP是如何保证可靠传输的
- 算法题:最长回文子串