前几天一位粉丝突然跟我说他进京东了,这个结果然虽然让我挺惊讶的,但想想这也是必然的 下面分享一下他的经历
一面
一面时间最长,是以电话的形式进行,不用紧张都是一些基础题,比较简单,回答知识点即可,他回答的也比较快而且全面,下面大概整理了一下
面试题目
-
HashMap底层,多线程操作导致死循环问题
-
如果HashCode一样,equal不一样怎么办
-
ConcurrentHashMap底层 讲了JDK1.7 和 JDK1.8之后的
-
Java中的集合
-
ClassLoader 讲了双亲委派机制,类加载可以用来干啥
-
char int float long double几个字节
-
http中Session 和Cookie区别
-
守护线程
-
线程 sleep和wait的区别,sleep的时候CPU在干啥
-
Volatile的作用,底层实现
-
协程和协程的好处,顺便讲了python中的GIL
-
线程池的参数有哪些,线程池满了咋办
-
了解Spring吗
-
数据库索引,左旋右旋了解吗
-
怎么设计一个秒杀系统
-
当发现CPU占用100%的时候怎么排查问题
-
介绍自己一个小项目
-
问CSP考试是啥
二面
这个时间较短,整体感觉还好,一些回答不上来影响不大,据他所说部分回答有点嘘,这里主要考察知识面的广度以及你对做过项目的熟悉度,每个人做的项目都不同根据你的简历来,就简单举几个例子吧
项目是怎样预防sql注入的
回答:用的是mybatis,sql语句中用#{},#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,jdbc有个预编译的过程可以有效预防sql注入,尽量不用${},它是个拼接符,用来拼接sql字符串。
项目中你做到的redis缓存相关的切面配置(简历中有写)
-
切面分析:@Aspect
-
切面: 查询前先查询redis,若查询不到,则查数据库,得到数据后存到redis中
-
目标方法:查询数据库
-
前置:查询之前先查redis
-
后置:从数据库中查到的内容放到redis中
-
切面中的通知定位环绕通知:@Around
然后又问了aop的实现原理(jdk动态代理和cglib字节码增强,在回答时要说出底层源码)
喜欢什么技术
答:分布式,实习时虽然自己做的是企业后台,并没有涉及到很多分布式的内容,但是会经常从同事那里了解一些分布式的技术感觉很有趣
都了解到了哪些分布式的技术
答:
-
进行反向代理和负载均衡的nginx,及实现高可用的keepalived+nginx;
-
内存数据库redis及它的基本数据类型和持久化方式;
-
用于做注册中心的zookeeper和服务治理的dubbo;
-
防止用户重复登录的单点登录;
-
分布式的文件存储系统fastdfs;
-
页面静态化处理的freemarker;
-
以及用于搜索的solr(这部分由于有些技术自己只是会用,不了解底层,所以说的吞吞吐吐,很没底气,其实没必要,大大方方说出来后再说明自己了解的程度即可)
HR面
-
自我介绍,对公司面试的评价,实习时间
-
面了几家,为什么推掉?
-
你认为你有什么优点?有什么缺点?有什么兴趣爱好?
-
在团队中习惯充当什么样的角色?
-
遇到过比较困难的事情是什么?觉得自己很幸运的事情是什么?
-
对于未来的规划?有没有使用过公司的其他产品?有没有转正想法?
他的一些面试资料整理
image image image总结
对于他能拿到下京东我虽然惊讶,但是这个结果也在情理之中,确实优秀主要肯学不会的都会来问我,算是他半个老师吧,有资料也会第一时间给他,人老实,面试中确实不会的直接说,比后面面试官把你面倒要强
其实网上的大多数面经已经说的很清楚,一定要形成自己的知识树,如果仅仅想通过看面经来通过面试,会很难。自己平常一定要积累知识,把知识点分类进行记录,在面试过程中主动说出面试官所提问题的关联问题的解决方案能够加分,体现自己的知识串联能力。
以上这些资料有需要的关注私信就获得免费领取方式
网友评论