3.23携程线下面经(已OC)
一面
-
介绍项目
-
MySQL相关:隔离机制及实现原理
-
MySQL相关:项目中使用到了哪些索引?如何优化?
-
MySQL相关:如何分库分表
-
MySQL相关:查询大批量的数据,有少量的更新,如何设计系统?(不能用缓存)
-
生成一个对象的全过程
-
对象的组成(对象头、实例数据、对齐填充)
-
JVM堆相关,包括哪些部分?eden、survivor以及老年代,新生代什么条件下回到老年代
-
gc回收器有哪些?有什么特点?
-
JVM参数,最大堆和最小堆设置一样大?(这里注意问的不是数据结构的大根堆、小根堆,而是
-Xms
和-Xmx
) -
泛型中如何确定上下限(
<? extends T
><? super T>
) -
模块跟模块间如何确定界限?(比如买票模块,折扣模块、付款模块 密切相关,怎么这些模块间的界限?)
-
设计一个系统,如何保证高并发、高可用?
-
以下代码可能会有什么问题?(并发问题)
public class Test {
private static int count = 0;
public static int add() {
return count++;
}
}
-
一个端口一次可以建立多个TCP连接吗?
-
最近面试中遇到的问题,会详细深挖
二面
-
介绍项目,详细实现,如何优化
-
redis中,key本身的数据量过大,如何处理?
-
redis的高可用方案?
-
设计方案:具体就不说了,与这道题类似:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?(关键:根据重要字段求出hash,redis中查询)
-
设计方案:设计一个抢票系统。短时间内大量请求如何处理?要求高并发、高可用(epoll、redis、集群、降级等)
总结
总的来说,一面涉及到不少八股文相关的,也会结合你的项目去进行提问。二面大部分时候在问项目设计,基本没问常规八股文。全程在提问,没有让手撕代码,其他人好像有人要手撕。一下午面完两面,立即出结果,一两周后线上HR面。
后续
一周后线上HR面,HR面完后发了英语测评,今天收到电话口头offer。
#暑期实习##携程#