前言
自己是今年9月底开始参加的秋招,大大小小也拿了不少offer,最后选择进入京东!很多人要我把具体过程发出来,其实我这个人比较懒是不想法的!但是想着自己能上岸面上京东也多亏了之前网上的大佬分享出来的面经,现在我自己也来学着大佬写面经!第一次写,很多的总结不到位希望大家不要介意!整体来说,还是比较注重基础的,主要就是Java和计网的!然后简历上的项目还是要非常熟悉的,二面的时候面试官就问项目问的比较细最后还是要夸一下,京东的整个面试流程还是非常快的,而且面试官人都很好,面试体验很好!
另外我这里为大家准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中),有需要的朋友点击这里备注csdn,自行下载即可!希望大家都能找到心仪的工作!
一面
-
本来视频面试,但是由于面试官视频有点问题因此改成电话面试,水果手机没法电话录音因此问题有所缺漏。全程 26 分钟,涉及内容包括 Java 数据类型
-
Java 里面什么是值传递什么是引用传递
基础类型是值传递、引用类型是引用传递 -
有啥数据类型
我回答了列表、栈、队列、set -
ArrayList 和 LinkedList 有啥区别
前者数组,查找时间复杂度低,删除时间复杂度高,需要扩容;
后者链表,查找时间复杂度高,删除时间复杂度低,不需要扩容
-
知道 HashSet 么?
知道,其实底层封装了 HashMap -
ArrayList 和 HashSet 有什么区别?
一个是列表,一个是 set,set 保证了数据的唯一性,而列表不会 -
什么时候用 Set 什么时候用 列表
???需要保证数据唯一的时候用 set,不需要的时候用列表呗 -
怎么保证数据的唯一性?
因为它的底层是 HashMap,因此我们需要保证他的 hashcode() 方法得出的结果唯一,所以我们可以重写这个方法。 -
String、StringBuffer、StringBuilder 的区别
String:不可变,线程安全
StringBuffer:可变,线程安全
StringBuilder:可变,线程不安全
-
什么时候用上面三者?
看情况 -
什么是 Spring IoC?
控制反转,即新建 bean 实例不需要使用类来进行 new,而是通过构造方法、方法设置以及依赖注入的方法来实现。 -
用过什么注解?
@Autowired用来自动装载,@Controller标注 Controller 类,@Service标注 Service 类,@Configuration标注配置类等等 -
@Autowired 和 @Resource有什么区别?
不知道,没用过后者 -
如果代码中写了@Autowired但是实际上不想让他装载,应该怎么办?
我回答了在@ComponentScan注解里面把这个类所在包从扫描的包中剔除 -
Spring 单例有什么好处和坏处?
好处:bean 的生命周期完全由容器控制,不需要担心类的创建、空间的浪费
坏处:如果有一些变量什么的可能会导致线程不安全
-
有什么办法能解决上面的线程安全问题?
可以直接给属性加 synchronized 关键字,或者将属性设为私有的,通过方法来访问,这些方法必须使用锁或者 synchronized 关键字修饰。 -
如果不用锁呢?
可以使用自旋锁 + CAS 的方法 -
Mybatis 中 # 和 $ 有啥区别?
不知道。。。 -
什么是 Spring AOP?
面向切面编程 -
有啥问题
略
二面
-
emmm。。又是电话面,没有录音。全程大概 30 分钟不到,感觉还可以
-
问了项目相关问题
略 -
JVM 的垃圾收集算法?
标记删除、标记复制、标记整理 -
红黑树产生的背景和应用
(背景我咋知道啊。。。几几年谁谁谁提出的?)应用比如说 Java 中的 HashMap(尽量往自己知道的方面扯)。 -
操作系统了解吗?
除了日常使用的一些命令之外,其他的就不是很了解,比如说内核态用户态什么的不是很清楚。 -
查看端口是否被占用用什么命令?怎么查看端口的 TCP 连接呢?
前者用 lsof -i,后者应该可以用 netstat 查看吧 -
项目中用到的分布式锁
项目里没有用,但是可以使用 数据库、redis、zk 做分布式锁 -
数据库事务隔离级别
四种
读未提交、读已提交、可重复读、串行化
-
数据库里面的锁
emmm。。。如果说从锁的范围来说,有表锁、页锁、行锁、全局锁。如果说底层的话,有 record lock、gap lock、next-key lock。如果说锁的竞争机制的话,有乐观锁、悲观锁,很多 -
常用引擎中有哪些锁?
上面的锁,innodb 中都有。但是 MyISAM 不支持事务,因此他只有全局锁。 -
分布式事务算法有些?
不知道。。。 -
在项目里的主要贡献?
略 -
学习生涯中哪些对你帮助最大?
略 -
有啥问题?
略
三面
-
List和Set的区别
-
List常用的实现类
-
ArrayList和LinkedList的区别
-
Set常用的实现类
-
HashSet和LinkedHashSet的区别
-
int和Integer的区别
-
==和equals的区别
-
final关键字
-
接口和抽象类的区别
-
原子操作,CAS存在的问题,如何解决
-
++和–操作是否为原子操作,为什么
-
Java的异常处理机制,Error和Exception的区别
-
IOException需要捕获吗?
-
synchronized和Lock的区别
-
线程池:创建、核心参数、拒绝策略
-
Spring依赖注入的方式
-
当前bean有没有都行,应该采用什么方式注入
-
Redis的数据类型,常用的Redis命令
-
MyBatis中 # 和 $ 的区别
-
Mysql联合索引的最左匹配原则
-
项目相关,就让说了一下,没有深入的问
-
反问环节
HR 面
-
电话面木有录音,题目都列出来了答案就不回答了,因人而异参考也无用。面试官感觉是个新入职的小姐姐,感觉不太有精神。。。大家都要加油啊!
-
问了本科学校、考研的事情
-
看你项目经历只有一次,为什么?
-
问了学院的事情
-
有没有为实习做的准备?(我???都不能实习做啥准备?)
-
找工作看重哪些要素?
-
最近还投过什么么?
-
你刚才说了薪资问题,你的期望薪资是?
-
(由于前面说手头上有的 offer)现在有的 offer 达到你的期望薪资了么?
-
你怎么看待 xx 公司和京东?
-
职业规划
-
怎么看待加班问题?
-
职业规划中,自己哪些缺点会造成影响?
-
同学们、老师们对你的评价
-
自己的优点
-
你有什么问题?
总结
最后我为大家准备了Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。有需要的朋友点击这里备注csdn,自行下载即可!实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的,在我看来,自己付出多少,回报就有多少。
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!