美团到店餐饮SaaS面经(已offer)
一面(4-1)
-
Java是自学的还是教的,如何自学的
-
数据量有多大
-
介绍一下加密检索
-
对中台的理解
-
TCP三次握手
-
追问1: 为什么一定要3次,不能两次
-
-
介绍一下JVM有哪几块
-
追问1: 哪些是线程私有的,哪些是线程共享的
-
-
了解metaSpace嘛
-
JVM如何判断对象能不能回收
-
重写equals方法时,为什么一定要重写hashCode方法
-
介绍一下Java的双亲委派模型
-
追问1: 类加载器分为哪几类(Bootstrap ClassLoader、Extension ClassLoader、 Application ClassLoader)
-
-
Integer a = 128; Integer b = 128; Integer c = 64; Integer d = 64;a==b和c==d分别输出什么,为什么
-
HashMap会检查冲突吗
-
追问1: 建一个空map初始容量是多大
-
追问2: map扩展的规则
-
追问3: 每次扩容为什么要为2的幂次方
-
-
聚簇索引和非聚簇索引的区别
-
追问1: 最左匹配原则
-
追问2: MySQL为什么使用B+树
-
-
Redis持久化方式
-
追问1: AOF需要频繁的写入磁盘,效率是不是很低
-
二面(4-8)
-
mysql的默认隔离级别是什么?有幻读问题吗
-
追问1: RR如何解决幻读问题
-
追问2: 编码时需要做什么事情来解决幻读?还是Mysql会自己实现
-
追问3: RR+next key lock通过串行化解决幻读问题的吗
-
追问4: 如何给mysql加锁(可以在select的最后加一个for update;在select 语句后加上Lock in xxxx mode)
-
追问5: 什么是幻读?什么场景会产生幻读?
-
追问6: 删除会出现幻读吗?为什么?
-
-
事务的特性
-
追问1: 一个事务在修改数据库,一个事务在读数据库,如何保证原子性?(没理解什么意思)
-
追问2: 操作时先更新数据库,还是先读数据
-
追问3: 为什么数据库用B+树不用红黑树
-
追问4: 什么场景适合使用红黑树
-
追问5: 二叉树和红黑树的区别
-
-
A表有5行,B表有10行。A左右连接B表有几行记录
-
数组和链表的区别
-
hashMap的数据结构
-
追问1: 为什么链表要转换为红黑树
-
追问2: 100个元素,是否需要扩容?扩容过后是多大
-
追问3: 为什么需要扩容到256
-
追问4: 什么时候需要扩容
-
追问5: threshold是多少
-
-
栈和队列的区别?适用场景?
-
线程的状态及转换过程
-
追问1: blocked可以直接转换为running吗
-
追问2: 有哪些状态可以转换到销毁状态
-
追问3: sleep和wait的区别
-
追问4: notify一定会会唤醒线程吗
-
追问5: 如何保证notify一定能唤醒线程
-
追问6: 如何知道notify唤醒哪些线程
-
追问7: notify是如何唤醒线程的?是唤醒所有线程吗?
-
追问8: 如何唤醒全部线程
-
追问9: Java线程的状态
-
追问10: Time_Waiting和Waiting的区别
-
追问11: Waiting如何被唤醒
-
-
网络可以分为哪几层
-
追问1: 你觉得三种分层方式最合理?为什么会出现三种分层方式
-
-
Java设计原则有哪些
-
追问1: 设计模式有哪些
-
追问2: 工厂模式有哪几种?有什么区别?
-
-
传输层有哪些协议
-
追问1: TCP如何实现流量控制
-
追问2: 什么是连包问题
-
追问3: 接收方缓存满了之后多余的报文会如何处理
-
追问4: 糊涂窗口综合症及解决方案
-
追问5: 这些问题在编码时需要注意吗
-
-
冯诺依计算机体系结构
-
追问1: 每个结构说一下有哪些部件
-
追问2: 主板属于哪些结构
-
-
TCP可以双向发送请求吗
-
追问1: HTTP可以双向发送请求吗
-
追问2: HTTP和TCP是长连接吗
HTTP1.0是短链接的,每次请求都需要重新建立TCP连接,HTTP1.1及以后默认是长连接的,通过响应头的Connection:keep-alive来保证长连接。keep-alive不会永久保持连接,他有一个连接时间,在不同的软件中有不同的大小。
-
追问3: HTTP如何支持的长连接
-
追问4: HTTP数据传输的过程
-
追问5: HTTP如何保证可以一直接收到客户端的请求
-
追问6: HTTP是串行接收还是并行接收
- 追问7: HTTP如何知道回复的是哪一部分信息
-