携程oc,回馈社区,一二+HR面经奉上
首先感谢牛客网,感谢各位牛友的交流与鼓励,本菜于4月11号结束0offer的焦虑之路,顺利拿到携程的暑期实习offer,现将时间线与面经奉上,回馈社区!!!
2.28投递+测评
3.10笔试
携程的笔试还是有点难度的,好像a了2道吧,具体记不清了
3.16一面 50min
一面接到邀请直接选了第一天下午场,视频面,面试官主动提了是酒店事业群,没有自我介绍。面试一开始看到面试官在家里还是懵了一下,中间甚至出现了面试官的家人,也是主动开玩笑活跃了下气氛,总体来说面试的气氛还是非常融洽的,但是因为本菜咸鱼了半个月没有面试,发挥的话,自我感觉一般般。问的问题深度还是不错的。
- 面向对象三大特征(没啥好说的,但是最好结合个人理解);
- 结合实际谈谈对三大特征的使用与理解吗?(结合了项目用到的内容,分析封装继承多态的应用与理解,SDK工具封装,访问控制,父子集成扩展,接口扩展,多态运行时调用,多态底层虚函数实现,invokevirtual关键字,解析/分派。主动聊的很深)
- GC的几种算法(从计数->引用判断对象是否已死,优缺点分析;分代假说,为何分代,跨代部分解决方案;由分代假说引出三种回收算法,优缺点,在各回收器上的应用;深入三色标记,并发问题;CMS/G1介绍,这里说的非常多了,问了面试官是否继续。)
- 谈谈你了解的几种垃圾回收器(介绍了CMS和G1,原理、过程、优缺点、对比)
- 想要在指定时间结束垃圾回收,选用哪种垃圾回收器(这里忘记了G1的设计初衷——停顿预测模型,没回答出来G1,答的parallel scavenge);
- 线程池的几个参数(常规八股);
- JMM内存模型(常规八股);
- volatile和synchronized(常规八股,深度方面,简单说了happens before,MESI,#Lock关键字,锁升级过程,objectMonitor对象里的队列与状态字)
- 介绍一下Java不同层面的锁(JVM层面与JDK层面,就是synchronized+Lock,优缺点、对比、AQS)
- 很多短任务线程,选择synchronized还是lock(场景题,有点复杂,看规模,当时回答的有点错误:锁竞争小时,synchronized和lock效率没差,偏向模式下(单线程读写)甚至高于lock,但是并发量上升时锁撤销会大幅影响性能,稳定自适应轻量级锁状态下,线程接近交替运行,或者说短任务线程多,基本一样,因为都是自旋,大量任务并发竞争时,随着任务量的增大,synchronized的效率会远小于lock,因为重量级锁会频繁切换内核态与用户态;大量长任务,只能重量级锁。以上是个人所总结,有不正确的还请指正)。
- 7层网络,4层网络,5层网络,各层有哪些协议(normal)
- 已经封装好的消息,不考虑DNS等,怎么寻址(normal)
- 局域网内怎么寻址,网关怎么找到(DHCP,忘了,但是答出来联网时已经获得了网关)
- 网际路由协议,怎么确定最短路由(BGP,忘了,直接说时间久远)
- 反问。
3.24二面 45min
二面面试官上来就说了是交叉面,最终看hr来确定部门。面试官很和善,开始前互相说笑了几句,气氛很融洽(有点像河北王校长)。
- 部门介绍(交叉面,hr面确定部门)
- 自我介绍
- sqlserver和MySQL区别(堆组织数据、B+树组织。锁)
- 什么时候是表锁(首先纠正问题描述:什么时候退化成行锁,然后向下展开,主键索引、唯一索引、普通索引、等值查询、范围查询、锁过滤、ICP优化);
- MVCC(隐藏字段,readView结构体,ids,undo页)
- redo,undo,binlog(结合了redis的持久化,讲了内部XA,undo页组织,purge线程。数据库回答完,说三五年经验的都没我掌握的多,我。。。)
- DNS(开扯,DNS过程,DNS负载均衡)
- 计网:三次握手、四次挥手(开扯,啥都扯了,tcp头在握手中的变化:seq、ack、syn、窗口大小,socket连接过程对应,半连接、全连接队列,洪泛,cookie,半连接溢出策略,挥手过程,time_wait)
- Q:要再深入一点吗?A:不用了,那再说下第三次握手失败会发生啥吧(参见小林图解,重试次数,重试时间)
- 讲一下GC算法吧(开扯:分代假说,分代,三种算法,优缺点,常见垃圾回收器的应用)
- 设计模式(结合项目开始扯淡,责任链、策略模式、ThreadLocal,深浅拷贝)
- 项目:心跳怎么实现的?
- 项目:重复通知怎么回事,怎么解决的(两个层次)
- 项目:redis除此之外呢,还有啥(缓存);
- 项目:对redis依赖太过了,崩了咋办(cluster,真崩了就罕见了,还能咋办,发通知,重启);
- git用过哪些命令(pull,add,commit,push,fetch,diff,merge);
- C#和C++也会是吧?(会用会用);
- 那讲一下函数式编程吧(一开始听成面向过程,后来反应过来,讲了Java怎么实现的函数式:单一方法接口,C++函数指针,js方法对象,讲了lamda怎么用)
- 反问
3.30 HR面 30min
小姐姐声音真好听,很温柔,但是问的很细致,时间久远,有点忘了,但是都是常规问题。
- base选择
- 项目介绍
- 担任负责人时怎么分配任务
- 有没有遇到成员分歧,怎么解决
- 有哪些offer
- 对携程的看法(开吹)
- 反问
4.11 OC
总体而言,携程的面试不难,都是常规八股,也没有手撕题,面试体验非常不错,而且流程非常正规,一周一面,很不错。
#携程##实习##面经##面试流程#