本想试试看,结果却拿到了京东的Offer

4,182 阅读7分钟

最近,春招已经基本接近尾声了,我找了几位拿到名企Offer的粉丝,请他们总结了面试经验,近期会分批的推送给大家。希望给那些正在准备秋招的同学提供些帮助。

今天给大家分享的面经作者通过了2018年的春招,通过了京东的几轮技术面试。以下是他总结的面试经验及准备思路。Hollis只做了简单的格式修改。希望对你有帮助。

从年后开始正式准备,在春招抱着试一 试的念头,投了京东Java 研发工程师实习,然后意外过 了笔试一面和二面,稍微总结下自己面试 的经验和准备,希望能给 大家一点帮助

 

面试前我给自己列了一个 List,然后分为周计划和天 计划按照List的清单完成打卡, 虽然到目前为止还没把自己的 List全部走一遍,但觉收获还是蛮大的,如果和我一 样自制力不是很强的同学,也可以和我一样 制定一个List。

学习计划

日常任务

1. 设计模式 * 1(我是看的《大话设计 模式》,读起来通俗易懂,实现是C# 的,除了委托那块其他差别其实 不是很大,如果有余力的同学也可以结合《重构·改善既有代 码的设计》学习 )

2. Effiective Java * 2 (还有一本Practical Java感 觉有点旧,我是挑着看的,Effiective Java 也出了第三本,加了很多新的地方,英语好的同学建 议阅读原版,只不过我水平比较差看的中文版)

3. 集合类源码 *1 (最好是找一段时间系统的学 习一边源码联系起来看,看起来比 较吃力的同学可以上网参考一些博客帮助理解,不一定要求细节面面俱到但是一些关键 点要理解,我当时是之前系统的学了一遍,然后每天就是复 习一下,防止遗忘)

4. 算法题 * 1 ( Leetcode也推出了中文版,或者牛客网也可以,我算法比较薄弱,就挑了一下经 典的题目刷了下)

5. 基础知识题 若干(当时是在过 年期间把牛客网全部Java题过了一边,后面主要是做复习错题,和一些数据库以及网络的选择题 )

 

每周任务

最好根据每个人自己的时间来安排,当前也最好去上周review一下自己上一周的复 习的,然后每周最好都有个主题而不是漫无目的的复习,我是有记录一些笔记的习惯,推荐使用 MarkDown,或者直接用印象笔记有道云笔记 之类的工具也行

 

复习要点

其实我大部分是按照 Hollis 大神的 Java成神之路的基础 篇和部分进阶篇来准备的,自己 总结的其实还是Java基 础,JVM,网络,数据 库,数据结构,还有 Java的源码要熟练 (真的不是给Hollis打广告)

如果不是很清楚准备的同学可以多找几份面经 ,看看别人的问题, 带入面试场景,可以列出一份自己的弱点清单 ,然后针对薄弱做复习

 

一面是在前一天晚上六点收到短信,让我第二天十点到上海参加面试 ,真的没想到自己能过了笔试,想着自己也没参加 过面试,就来面试 下当做积累经验了。

一面

我:第一次面试有点紧张

面试官:没什么我 们就随便聊聊,你先自我介绍一下吧

 

然后是一串自我介绍(自我介绍 真的是必考题,建议每个同学都在自己心里有一份自我介 绍,我是在自我介绍的同时 穿插了自己大学期间做的几个项目 还有自己学习了哪些东 西)

 

Q:你简历上说 自己Java基础较为扎实 ,那我们先聊一些Java的基础问题

 

Q:StringBuffer和StringBuilder有什么区别,底层实现上呢

A:StringBuffer线程安全,StringBuilder 线程不安全,底层实现上的话,StringBuffer其实就是比 StringBuilder多了Synchronized修饰 符

 

Q:知道哪些Map

A:线程不安全HashMap ,线程安全ConcurrentHashMap,有序 TreeMap,实现ThreadLoacl用的 WeakHashMap

 

Q:HashMap为什么线程不安全

A:先说1.8之前 HashMap采用的是拉链法解决冲突,画图 解释了链表成 环的原因,在1.8的时 候采用了红黑树 做处理,感觉 出现冲突的概率没那么高了(不知道对 不对

 

Q:ConcurrentHashMap 为什么线程安全

A:讲了 红黑树和 CAS,又顺便提下 ABA问题,以及Java的解决方案

 

Q:你简历提到有参加过蓝桥杯比赛,那写下快排算法,简单的说下思想

A:手撕快排

 

Q:你说使用GIt/SVN完成项目管理那你们平时在项目中是如何使用Git,Git和SVN两者有什么区别呢

A:说 了区别,然后说 我们用的Git 其实用的不是很好,主要是新建分支做 备份,以及Feture,需要的 时候合并到master里面

 

Q:对JVM有了解吗?简单的介绍下

A:讲 了内存模型,垃圾回收算法,以及垃圾回收器, G1和 CMS感觉 是比较重要的

 

Q:用过锁吗,JUC包有什么了解

A: 讲了 JVM对锁的优化,还有 JUC包下面的几个锁 ,和Synchronized的不同

 

Q:你项目中用到了SpringMVC,你可以大概讲下你对SpringMVC的理解

A: 讲了IOC 和DI ,AOP 那块说 了JDK 和CGLib 动态代理,两种代理实现起来的不同点,接着提及项目中用到的一些 Spring Data 和 Spring Security 之类 的东 西

 

Q:你们主要用的是Mysql还是SQL Server

A : Mysql ,然后采用的是什么数据 库 引擎, 讲 了 Mysql 两种引擎的区 别 ,自己提了索引和底 层 数据 结 构

 

Q:你们用的MyBatis还是Hibernate

A : Hibernate ,但我自己了解 过 MyBatis ,自己也建 议过项 目改成 MyBatis

 

Q:你为什么要建议使用MyBatis呢,他和Hibernate有什么区别呢

A :主要可能 还 是出于自己喜 欢 学 习 ,而且听 说 很多互 联 网公司都是用 MyBatis , Hibernate 更加笨重一点,写的 hql ,但是如果数据 库 移植的 话 ,是比 较简单 的, MyBatis 写的是原生的 sql 语句,可能对于京东这样体量大的公司能更好的满足自己的业务需求,毕竟 sql 还是比 hql 更加灵活的

 

接着就是一 连 串 围绕项 目的 问题 , 应该 每个人都不同,期 间 穿插着多 线 程的 问题

提醒同学 们 ,自己的 项 目可以少,两个就 够 了,但一点要熟悉 项 目的流程开 发过 程,拿出来的 项 目要有 东 西可以 讲 ,最好不要把大学期 间 做的大作 业 拿来充数。

 

Q:项目遇到的难题,有没有JVM调优的经验

A ; 讲 了自己遇到的一次内存泄漏的 问题 ,如何用 JPS Htop 等指令, 导 出 线 程堆 栈 做 问题 排 查 ,最后定位 问题

 

Q:你对京东有什么了解

A : (当 时这 个 问题 感 觉 自己答的不是很好,建 议 面 试 的同学都在面 试 前找找 这 个公司技 术团队 有没有出 过 什么 书 或者什么技 术 博客, 对 技 术选 型大概有个了解)

 

一面 结 束,面 试 官 说 我基 础 挺扎 实 的,可能周末 还 要我来一趟,然后我就回学校等二面通知了

二面 二面其 实 没什么好 说 的,感 觉 比一面 简单 ,主要都是 围绕 我 简历 的 项 目,和 团队协 作来 说 的,最后提及了自己最近在学 习 什么,提了自己 对 于 ZooKeeper , Kafka 这块比较感兴趣,正在努力的学习中,然后设计了一个高并发场景,让我思考如何处 理

 

二面 结 束,面 试 官 说 尽量下午 发 短信, 结 果提心吊胆等了三四天今天才收到 预约 HR 电面的短信,希望自己 HR 面能 顺 利,也希望同学能早日拿到自己想要的 offer 。

 

还是在学习中的菜鸡一只,如果有不正确的地方希望指出!

PS:本文来自粉丝投稿,原作者:蠢廿。让我们向这位优秀的朋友表示感谢。