写点什么

为 2022 年秋招准备,隔壁老王整理了两个月的 Java 面经,也太全了

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

​前言

正好最近我一朋友面试京东回来,和我聊了他的面试经过,最后经过四面成功斩获 offer!下面我把他所得经验毫无保留的分享给大家!希望对正准备面试小伙伴们能有所帮助!!!



京东一面

1、自我介绍 2、项目介绍 3、项目中异步化怎么实现的 4、讲讲 Java 集合框架 5、讲讲刚刚你提到的红黑树 6、比如对 list 排序有什么方法(我问是链表还是数组,面试官说就是 arraylist,linkedlist 什么的,我说那就 collections.sort)7、讲讲这个 sort 用了什么排序 8、你刚刚提到的计数排序时间复杂度是多少(线性)9、讲讲 JUC 最熟悉的部分(我说了锁机制)10、你刚刚说到的 CAS 原理是什么,会出现什么问题(自旋,ABA)11、ABA 怎么解决(版本号机制)12、你刚刚讲的 ThreadLocal 会在什么场景下用到(我说了我项目中的一个场景)13、讲讲 spring aop14、讲讲 aop 一般用于什么场景 15、说一下 mybatis 俩种传参机制(占位符和拼接)16、举个例子说明你刚刚讲的 sql 注入 17、用一个数组模拟一个栈(我也不知道为什么我当时脑子里只有生产者消费者模式,就写了个生产者消费者模型)

京东 二面

1、Hashmap 说下吧。2、线程池有哪些参数,如果满了新的线程会怎么处理?3、你们网关有配 jvm 参数吗,都有哪些?4、高并发的时候你们网关高可用怎么做的?5、数据库用过吗,如果现在有十亿的数据给你怎么存?6、你们的熔断降级怎么做的?7、项目的线程池怎么配的?8、字符串的类说一下。9、两个字符串都是 y,用 equals 返回什么?10、Hashcode 和 equals 的关系。11、两个线程一起输出 100 个数怎么做?12、SpringBoot 的 AOP 是什么?

京东技术三面

1、分布式下 redis 如何保证线程安全?2、redis 持久化的方式以及区别;3、zookeeper 如何实现分布式锁、其他分布式锁怎么实现?4、kafka 的架构,如何用 kafka 保证消息的有序性?5、数据库的优化包含哪些?MySQL 的优化,谈两个你优化的例子。6、最有技术难度的项目,介绍下相关核心设计流程。7、工作中,遇见了技术瓶颈无法解决,你的解决思路?8、未来你的职业规划是怎么样?

京东四面、HR 提出的面试问题

(1)您在前一家公司的离职原因是什么?(2)讲一件你印象最深的一件事情(3)介绍一个你影响最深的项目(4)介绍你最热爱最擅长的专业领域(5)公司实习最大的收获是什么?(6)与上级意见不一致时,你将怎么办?(7)自己的优点和缺点是什么?并举例说明?(8)你的学习方法是什么样的?实习过程中如何学习?实习项目中遇到的最大困难是什么以及如何解决的?(9)说一件最能证明你能力的事情(10)针对你你申请的这个职位,你认为你还欠缺什么(11)如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?(12)项目中遇到最大的困难是什么?如何解决的?(13)你的职业规划以及个人目标、未来发展路线及求职定位(14)如果你在这次面试中没有被录用,你怎么打算?(15)评价下自己,评价下自己的技术水平,个人代码量如何?(16)通过哪些渠道了解的招聘信息,其他同学都投了哪些公司?(17)业余都有哪些爱好?(18)你做过的哪件事最令自己感到骄傲?(19)假如你晚上要去送一个出国的同学去机场,可单位临时有事非你办不可,你怎么办?(20)就你申请的这个职位,你认为你还欠缺什么?(21)当前的 offer 状况;如果 BATH 都给了 offer 该如何选?(22)你对一份工作更看重哪些方面?平台,技术,氛围,城市,还是 money?(23)理想薪资范围;杭州岗和北京岗选哪个?(24)理想中的工作环境是什么?(25)谈谈你对跳槽的看法(26)说说你对行业、技术发展趋势的看法(27)实习过程中周围同事/同学有哪些值得学习的地方?(28)家人对你的工作期望及自己的工作期望(29)如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?(30)若上司在公开会议上误会你了,该如何解决?(31)是否可以实习,可以实习多久?(32)在五年的时间内,你的职业规划(33)你看中公司的什么?或者公司的那些方面最吸引你?



一、 面试到底在问些什么东西?

首先你要明确的是面试官所问的内容一定和你简历所写的东西是紧密联系的,一般你没有写在简历上的技能,面试官很少会去提问。面试大体上包括下面几方面知识类型:

1.、 Java 基础、多线程、IO 与 NIO、虚拟机、设计模式 2、数据结构与算法(要有手写算法的能力)3、 计算机网络(TCP 三次握手和四次挥手)4、 数据通信(RESTful、RPC、消息队列)5、 操作系统(Linux 的基本命令以及使用)6、主流框架(Spring 底层原理与源码问的很多)7、数据存储(最常见的是 MySQL、Redis)8、 分布式

除了这些东西还有什么其他问题:

1、 实际场景题 2、 生活方面的问题 3、性格/其他方面的问题

二、 面试流程

1. 京东公司的面试分为 5 个环节。

分别为简历筛选、小组面试、HR 面试、终试、offer 发放。下面分别讲一下每个环节的主要内容,以及通过技巧。

2. 简历筛选。

这个大家应该都知道,就是你在进行公司招聘时,都会要求投放简历的。京东面试也是如此。会对所有的应聘人员简历进行对比,再筛选出一部分人进入下一个环节。

通过技巧:简历要写的简洁大方,同时也要尽可能的展现自己的闪光点和优点特色,尤其是得过的一些奖项和参加的比赛。

3. 小组面试。

这个环节是把上一轮通过的应聘人员,分成几个小组,然后进行小组讨论,讨论的议题由面试人员事先拟定好。在一定时间内,要求小组给出一个统一的答案。如果在规定时间内没有形成一致意见,则整个小组全部淘汰。通过技巧:敢于发言,勇于表达个人观点,不要在小组讨论时,一言不发。思维清楚,逻辑明确。

4. HR 面试。

通过以上的面试环节,下面就会进入 HR 面试环节。这个环节,部门 HR 向你就某一问题提问,然后让你回答。因为面试人员与上面的不一样,很多人害怕,一见到部门 HR 就很胆怯了。

通过技巧:克服胆怯心理,口齿清楚,逻辑有条理,还有就是这个环节的问题,会牵扯到专业知识,所以面试之前,要复习下所学知识,重在平时的知识积累。

5. 终试。

当你通过以上的测试以后,就进入最终的测试。大部分情况,都会被区域主管级别的领导,对你进行问答,看你表现的情况。

通过技巧:自己领悟吧,我只能帮你到这了,到这关我就折戟了。

6. 发放 offer。

当你过五关斩六将,打败了诸多对手后,获得了进入京东工作的机会。差不多过一段时间,京东会给你发放 offer,让你去公司报到。



三、 面试常问的知识点

1、集合相关问题(必问)

  • HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList 的底层实现

  • HashMap 和 Hashtable 的区别

  • ArrayList、LinkedList、Vector 的区别

  • HashMap 和 ConcurrentHashMap 的区别

  • HashMap 和 LinkedHashMap 的区别

  • HashMap 是线程安全的吗

  • ConcurrentHashMap 是怎么实现线程安全的

  • HashMap 的长度为什么是 2 的幂次方

2、多线程并发相关问题(必问)

  • 创建线程的 3 种方式

  • 什么是线程安全

  • Runnable 接口和 Callable 接口的区别

  • wait 方法和 sleep 方法的区别

  • synchronized、Lock、ReentrantLock、ReadWriteLock

  • 介绍下 CAS(无锁技术),什么是悲观锁和乐观锁

  • volatile 关键字的作用和原理

  • 什么是 ThreadLocal

  • 创建线程池的 4 种方式

  • ThreadPoolExecutor 的内部工作原理

  • 分布式环境下,怎么保证线程安全

  • synchronized 和 lock 区别以及 volatile 和 synchronized 的区别

3、JVM 相关问题

  • 介绍下垃圾收集机制(在什么时候,对什么,做了什么)。

  • 垃圾收集有哪些算法,各自的特点。

  • 类加载的过程。

  • 双亲委派模型。

  • 有哪些类加载器。

  • 能不能自己写一个类叫 java.lang.String。

4、设计模式相关问题(必问)

设计模式比较常见的就是让你手写一个单例模式(注意单例模式的几种不同的实现方法)或者让你说一下某个常见的设计模式在你的项目中是如何使用的,另外面试官还有可能问你抽象工厂和工厂方法模式的区别、工厂模式的思想这样的问题。

另外,建议把代理模式、观察者模式、(抽象)工厂模式好好看一下,这三个设计模式很有用。

5、数据库相关问题,针对 MySQL(必问)

  • 给题目让你手写 SQL。

  • 有没有 SQL 优化经验。

  • MySQL 索引的数据结构。

  • SQL 怎么进行优化。

  • SQL 关键字的执行顺序。

  • 有哪几种索引。

  • 什么时候该(不该)建索引。

  • Explain 包含哪些列。

6、框架相关问题

  • Hibernate 和 Mybatis 的区别。

  • Spring MVC 和 Struts2 的区别。

  • Spring 用了哪些设计模式。

  • Spring 中 AOP 主要用来做什么。

  • Spring 注入 bean 的方式。

  • 什么是 IOC,什么是依赖注入。

  • Spring 是单例还是多例,怎么修改。

  • Spring 事务隔离级别和传播性。

  • 介绍下 Mybatis/Hibernate 的缓存机制。

  • Mybatis 的 mapper 文件中 #和 $的区别。

  • Mybatis 的 mapper 文件中 resultType 和 resultMap 的区别。



重点:总结一些面试经验

1、先投一些普通公司,等面出了心得再去投理想的公司。2、不熟悉的技术不要主动提。3、 对于那种实习期 6 个月还打 8 折的公司,除非你没有其他选择了,否则不要去。 另外,小公司喜欢在薪水上压你,开的时候适当提高。4、 不要去参加招聘会,纯粹是浪费时间。5、 把面试当作一次技术的交流,不要太在意是否能被录取。6、公司一般面完就决定是否录取了,让你回去等消息这种情况一般没戏,无论你自己觉得面的有多好。7、尽量少通过电话面试,效果不好。8、 在面试的日子里,要保持每天学习,无论是学习新东西还是复习旧东西。9、拿到 offer 了,问问自己这个公司让自己 100%满意了吗,如果不是,请继续努力找更好的。10、 通过面试官可以大概判断这家公司的情况。11、 问到自己有深入研究过的知识,抓住机会好好表现,不要轻易放过。

总结

最近针对互联网公司面试问到的知识点,总结出了 Java 程序员面试涉及到的绝大部分面试题及答案分享给大家,希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习。

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ、Kafka、Linux 等技术栈。



由于内容实在太多,无法全部展示,需要的朋友可以 一键三连后,可以直接添加 小助手的 VX : MXC1146 即可免费获取!

发布于: 1 小时前阅读数: 3
用户头像

Java架构师

关注

Java架构师,高并发,高可用,分布式 2020.03.18 加入

领取文中资料加微信:MXC1146 备注:InfoQ 即可

评论

发布
暂无评论
为2022年秋招准备,隔壁老王整理了两个月的 Java 面经,也太全了