写点什么

三面痛失携程 offer(Java 开发岗),来看看我都遇到了什么题目吧

用户头像
Java架构师
关注
发布于: 9 小时前

前言

携程是我面试的第一个互联网公司,投递的岗位是后台开发实习生,总共面了三面,止步于人才库。中间兜兜转转,复杂的心理活动,不足与外人道也。唯有面试的技术部分与大家共享。


宣讲会完了之后有个手写代码的笔试,大致内容:


  • 已知有一颗二叉排序树,向树里面插入节点,如果该节点已存在(节点值相等),将节点中的 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 程序员朋友们,需要的可【点击此处】获取!





用户头像

Java架构师

关注

还未添加个人签名 2021.05.28 加入

还未添加个人简介

评论

发布
暂无评论
三面痛失携程offer(Java开发岗),来看看我都遇到了什么题目吧