前言
携程是我面试的第一个互联网公司,投递的岗位是后盾开发实习生,总共面了三面,止步于人才库。两头兜兜转转,简单的心理流动,有余与外人道也。唯有面试的技术局部与大家共享。
宣讲会完了之后有个手写代码的口试,大抵内容:
- 已知有一颗二叉排序树,向树外面插入节点,如果该节点已存在(节点值相等),将节点中的 count 字段加一;如果不存在,将节点插入树中,并将节点的 count 值置为 1。自行设计数据结构,插入算法并且剖析算法的复杂度。
题目比较简单,写完交卷。早晨一点左右接到一面面试告诉.
一面
- 例行自我介绍、我的项目介绍。而后开始面试:
- 我的项目是用 http 还是 https 拜访的。答:https。
- http 1.0 和 http 2.0 的区别?
- 说下 https 的申请过程。
- 说说 ssl 四次握手的过程。
- 在 java 7 和 java 8 中 GC 的区别。
- 看你的我的项目下面有做大文件的分片上传,在上传的过程能够做其余的事件吗?是否能够后盾运行?
- 多个 task 是在一个过程中运行吗?
- 数据库建索引有哪些思考?
- 之前保留文件分片序号的时候会呈现脏读的状况,如何避免脏读?事务隔离是怎么做的?
- 304 状态码有什么含意?服务端是如何实现的?
二面
- 技术和算法问的比拟少,全程都在谈人生现实和职业规划。
- 算法
- 在一个给定数组中找到最大的两个数。
- 为什么很多类要定义成抽象类?
三面
22 号星期二,接到 hr 面试预约电话。24 号下午视频面。面试官看起来斯斯文文的,亲和力也很好。自我介绍之后面试正式开始。
Java 根底:
- ConcurrentHashMap 1.7 和 1.8 的实现有什么不同。
- get() 和 size() 是否要加锁?如何加锁?
- 泛型在编译期和运行期的作用。
- 线程池是如何创立的?须要几个参数?别离是什么含意?
锁:
- 乐观锁和乐观锁的区别。
- 乐观锁和乐观锁的实现。(数据库、Java)
- CAS syncronized 实现有什么区别。
- violate 关键字。
数据库:
- 数据库索引构造。
- 数据库对 sql 语句的解析过程。
JVM
- JVM GC 的优缺点。
- 假如一个场景,要求 stop the world 工夫十分短,你会怎么设计垃圾回收机制?
- 有没有用过 JVM 相干工具?
算法
- 海量数据 top K 算法,讲一下思路。
设计模式
- 策略模式和 XX 模式的区别。(这里因为没有看过其余设计模式,过后问这个题目的时候脑袋都是懵的。)
一二面面的都还能够。第三面面的不是很好。吃完饭查了下状态间接进入人才库了,比拟遗憾。为了下次更好的应答面试官, 我整顿了一些 Java 学习笔记跟面试材料,在这里也分享给同样须要面试的 Java 程序员敌人们,须要的可【点击此处】获取!