前言
京东的一面二面的面试官和HR人都很好,非常和蔼,面试过程也是引导着你进行,面试体验非常棒!
感谢京东,期间也一直在牛客交流,特此来网上还愿!非常感谢之前看到的大佬提供的面经!
第一次投递就这么顺利,我也是感觉自己非常幸运,也祝大家面试顺利,offer多多!
下面就说下我的面试过程吧!
另外我这里为大家准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中),有需要的朋友点击这里备注csdn,自行下载即可!希望大家都能找到心仪的工作!
一面
面试官是个小姐姐,声音像关晓彤,很温柔,不会的地方会引导。
开始先做自我介绍
面试官开始问项目
介绍一下你博客用到的技术栈?
你的博客是和你的 CSDN 同步的?
我说是,我手动迁移过去的,小姐姐说你可以了解一下如何自动迁移。
你有发现博客中的 bug 吗?
我说没,她说你的归档页面有 bug,你思考一下是什么问题,造成的。我开始还很诧异,面试完我打开一看,好家伙,原来是没有分页导致博客数量太多,一个页面显示不过来。
讲一下数据库是什么设计的?
归档是怎么做的?SQL 语句怎么写的?
大概说了下思路,具体的 SQL 语句忘了。
归档页为什么不做分页?
这就是导致 bug 的原因,当时我说除了归档页都分页了,追问怎么实现的,我说用了 PageHelper 插件,反问的时候她其实想问 limit,我没 Get 到。
开始问基础,数据库中有张表,该表除了主键以外,有一些行的数据是完全一样的,问怎么找?怎么避免?
想了好久不知道怎么在数据库层面解决,问了一下可不可以在业务层解决,小姐姐说可以,然后开始说了下自己的思路。解决方案答了可以加唯一索引,在哪个列加?用户表的话可以加在手机号列。
我这里有一道算法题,你说一下思路就行。LeetCode39 组合总和 。
我再问一下 Java 基础,你知道 final 关键字有什么作用吗?
如何创建一个线程?
你都知道哪些集合类?
Set 和 List 有什么区别?
ArrayList 和 Array 有什么区别?
Array 是个什么东西,还有这个类吗,我一想会不会是数组,正好这时小姐姐说就是数组。
你说一下 HashMap 的原理吧?
Spring 的 IOC 原理是什么?
@Autowired 和 @Resource 有什么区别?
什么是分布式锁?怎么判断锁是否过期?
有用过哪些 Linux 命令?
最近有学什么新的技术吗?
我说在学 RPC 和 Netty,在看《MySQL技术内幕》,那你说说 MySQL 的索引。
你是怎么学习新技术的?
反问:
先问一下没答上来那个问题?
小姐姐说这种现象在高并发环境下可能出现,MySQL 提供了命令来解决这个问题。
问一下部门是做什么业务的?
主要是做小程序的,分为 toB 和 toC,详细介绍了这两个方向。
询问面试评价。
二面
自我介绍
项目介绍
JVM内存
垃圾回收的算法,分代收集
方法区中哪些可以被回收
类被回收必需要满足的条件
判断一个对象是否死亡?可达性分析一定会被回收吗?覆盖finalize(),原理是什么?(木知)
哪些对象可以作为GC Roots
引用有哪几种,特点
JDK 1.8的新特性有什么了解
类加载器和双亲委派
线程池的构造方法和过程
常用的内置线程池方法,特点?
AQS-(不会)
原子整型类的原理,
volatile 的原理。可见性,禁止指令重排序,new 一个对象的过程?
CAS原理,底层实现(不会)
HashMap碰撞怎么解决?(拉链法,开放寻址法)
HashMap的底层原理,两个版本的put有什么区别,头插和尾插有什么问题
SPI(从没听过 )
java多线程的实现方法
一个用户向线程池请求线程后线程池的处理过程
数据库hash索引和b+树的区别
多线程的同步异步问题
Spring中的AOP是如何实现的,jdk和CGLIB方法的区别
SpirngBoot不用人工去写bean这些事如何实现的
Spring中如果想实现多线程并发安全如何处理
Spring中事务
mysql联合索引使用A>n and B=m和 A=n and B=m的条件去查询会有什么样不同的处理(这个真没看到过,有老哥帮我解答一下吗。。)
MyBatis大量频繁访问数据库时使用什么优化机制
三面
首先自我介绍一下?参加的比赛用到的技术?Java的集合类有哪些?详细讲List、Set、MapArrayList和HashMap的区别是什么?HashMap如何解决hash冲突?有几大类hash冲突的解决方式?hash函数?红黑树的特点?TreeSet说一下?应用场景?CocurrentHashMap了解嘛?详细说说底层和锁的机制?应用?和HashTable的区别?StringBuilder和StringBuffer的区别?讲到底层和各自应用场景Java的锁都有哪些?偏向锁、轻量级锁、重量级锁、Lock包等都说了说synchronized和Lock的区别?ReentrantLock?什么是线程?线程进程区别?实现线程有几种方式?线程池这块了解嘛?创建线程池的方式?用哪个方式创建比较好?说一说线程池的工作原理?拒绝策略?sleep()和wait()的区别?IO模型了解嘛?BIO、NIO、AIO?快排和堆排?时间复杂度?如果数据量非常大,要进行排序的话直接快排性能不好,怎么进行优化?计算机网络OSI模型都有哪些?TCP和UDP的区别?应用场景?JVM的内存模型说一下?运行时数据区?你了解的垃圾回收算法都有哪些?引用计数和可达性分析区别?什么是索引?索引的作用?InnoDB底层结构?和MyISAM的区别?假设要对sql语句优化,一般从哪几个方面来进行?事务隔离级别有哪几类?各自解决什么问题?当前读和快照读?MVCC机制?undolog?数据库的乐观锁和悲观锁说一下?乐观锁的实现?next-key锁?Spring了解嘛?说一下IoC?AOP?JDK动态代理和CGlib?项目应用?Spring 创建的bean默认什么作用域?并发的情况下会不会存在问题?提到threadLocal,又讲到了自己项目的用threadLocal怎么用的。又问那threadLocal存在什么问题?一开始想了半天没想到,停顿了一段时间很尴尬,还好想起来了,内存泄露。反问。如果希望进入贵司的话自己还有什么不足需要改进?面试官很好,指出了有些基础不足,这块确实自己答得不太好,下来多写博客总结一下。非常感谢一面面试官老师,引导着我回答问题,面试体验很好!总结
另外我这里为大家准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中),希望大家都能找到心仪的工作!有需要的朋友点击这里备注csdn,自行下载即可!作为Java程序员,应该学习怎样的技术?去招聘网站上随便一搜,看看岗位要求就能够十分清楚了,自己具备怎样的技术和能力,就会影响自己的工作环境和社会地位。所以,多学一些大厂技术是百里无一害的。
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!