携程 一面 二面
9.17 携程一面 45分钟
1.简单介绍一下hashmap
2.为什么长度为8变为红黑树
3.为什么不一开始就用红黑树,这样有什么弊端
4.其他线程安全的集合
5.对集合排序用什么?有什么可以排序的工具类
6.线程池核心线数的选择
7.死锁的条件和避免
8.说一下nio
9.说一下最熟悉的垃圾回收器
10.说一下标记复制算法
11.说一下spring boot自动装配的原理
12.redis的使用场景和解决问题
13.redis分布锁实现
14.缓存穿透、缓存击穿、缓存雪崩介绍和解决方法
15.如何保证redis缓存和数据库数据一致性的
这里提到了我的秒杀项目是使用mq来保证的
16.如何解决超卖问题
17.mq消息丢失解决
18.mysql事务
19.回滚怎么实现的
20.怎么解决git冲突
21.开发过程中遇到的比较难的问题,如何解决的
22.说一下如果你来设计push怎么做(实习时业务方向是短信和push)
23.多个字符串查字符abc的次数你会怎么查
24.说一下你最熟悉的排序算法
没有反问环节
一面二面隔的挺久的,9.30提前批就要截止了,9.27赶紧发了封邮件给携程催了一下,当天晚上就发了面试邀约
10.9 携程二面 46分钟
1.说一下java的锁
synchronzied和基于AQS的lock
2.讲一下synchronzied的实现原理
3.锁的存储结构是怎么样的
4.轻量级是什么条件触发的重量级锁
5.轻量级和重量级锁的区别,最终应用层上有什么影响,为什么要升级为重量级锁
6.说一下lock的实现
7.说一下young gc和full gc
8.了解哪些类型的full gc
以下四问我答的都是jvm内存分配策略,面试官应该是想问虚拟内存这方面的,os太菜了没意识到
9.物理内存是怎么分配的
10.对象是怎么放到新生代的,它是分了块的
11.有了解过它的逻辑内存是怎么分配的吗?
12.你刚刚说的连续的空间,那它一块是多大
13.讲讲项目实现的重点功能和遇到的问题
14.限流是哪一步做的
15.为什么要限流,下单是哪一步扛不住
答的不够具体,面试官在引导我具体哪一步扛不住
16.项目为什么用线程池
17.项目的缓存策略
18.怎么区分热点数据进行缓存(LRU缓存)
19.现在还在实习吗?面试携程的初衷?有自己想去的业务吗?
反问:
1.部门是什么?
看一面,帮我查了一下结果面试官有重名的(火车票或者大数据)
2.面试结果多久出来?
后面应该统一按批次通知
3.面试的表现或者有什么建议?
理论基础扎实但是有些问为什么就不清楚了,建议多实践验证理论