热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

搞快点搞快点,2020年最新最详细的京东秋招Java社招开发岗面经,面历+原题回顾+面试心得!

本篇先以日历形式回顾秋招之路,方便各位参考某厂的处理进度;然后是总结归纳春秋招Java面试题库;最后做个总结还有展望,开始新

2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!

 

本篇先以日历形式回顾秋招之路,方便各位参考某厂的处理进度;然后是总结归纳春秋招Java面试题库;最后做个总结还有展望,开始新的征程~


  • 面试经历
  • 京东面试真题
  • 面试经验分享

1.面试经历

2020年的冬季特别的冷,无疑是程序员的寒冬,我也是年底裁员大潮裁下来的一名,(整个业务线都裁了 难受中~)但临近年底了失业回家也不太好所以有投了几份简历,其中投京东的一份,京东Java岗。


岗位描述:1、参与京东金融保险核心业务系统底层架构设计及重构工作;2、持续优化高并发场景下系统性能;3、与保险公司接口对接及联调;4、保险产品智能推荐系统开发;5、对接财务流程相关系统。任职要求:1、计算机相关专业本科以上学历,逻辑思维能力强,有很强的责任心和主动性;2、3年以上J2EE开发经验,有互联网开发经验,JAVA基础扎实,熟练运用设计模式;3、熟练掌握Spring、Struts2、Ibatis等常用框架,了解机制;4、熟悉分布式开发,熟悉常用SOA框架、多线程、网络编程等;5、熟悉常用数据库及优化,熟悉常用缓存、NoSql技术;6、熟悉Zookeeper、MQ等组件;7、有高并发、大数据量系统开发及优化经验者优先;8、有互联网金融尤其是保险业务开发经验者优先。

2.京东面试真题(答案见文末)

一面(主要是基础面)


  1. 自我介绍,主要问了做了什么和擅长什么
  2. @Autowired的实现原理
  3. Bean的默认作用范围是什么?其他的作用范围?
  4. 索引是什么概念有什么作用?
  5. MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?
  6. 说说Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
  7. hashmap原理,处理哈希冲突用的哪种方法?
  8. BIO、NIO、AIO的区别和联系?
  9. jvm内存模型jmm 知道的全讲讲
  10. 讲讲Java GC机制?
  11. Java怎么进行垃圾回收的?什么对象会进老年代?
  12. 垃圾回收算法有哪些?为什么新生代使用复制算法?
  13. HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?Java8中的HashMap有什么变化?
  14. 红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?
  15. hash和B+树的区别?分别应用于什么场景?哪个比较好?

二面(数据库问的比较多)


  1. 自我介绍
  2. 为什么MyISAM查询性能好?
  3. 说说事务特性(ACID)?
  4. mysql数据库默认存储引擎,有什么优点
  5. MySQL的事务隔离级别,分别解决什么问题。
  6. SQL慢查询的常见优化步骤是什么?
  7. 说下乐观锁,悲观锁(select for update),并写出sql实现?
  8. 讲讲TCP协议的三次握手和四次挥手过程?
  9. 用到过哪些rpc框架?
  10. Java web过滤器的生命周期?

三面(综合面主要分布式及缓存)


  1. 自我介绍,讲下项目!
  2. 加锁有什么机制?
  3. 数据库水平切分,垂直切分的设计思路和切分顺序
  4. Redis如何解决key冲突?
  5. 如何保证数据库与redis缓存一致的
  6. 项目中消息队列怎么用的?使用哪些具体业务场景?
  7. JVM相关的分析工具有使用过哪些?具体的性能调优步骤吗?
  8. MySQL的慢sql优化一般如何来做?除此外还有什么方法优化?
  9. 线上的服务器监控指标,你认为哪些指标是最需要关注的?为什么?
  10. soa和微服务的区别?
  11. 单机系统演变为分布式系统,会涉及到哪些技术的调整?请从前面负载到后端详细描述。
  12. 设计一个秒杀系统?

面试真题的答案我已经整理再来一起,由于文章篇幅太长,需要的朋友一键三连后添加小助理获取哦

 


3.面试经验总结以及学习路线分享:

面试经验总结:


  1. 面试尽量提前到,能早点面试,面试官也更愿意给你通过(就像中国好声音一样,一开始都是疯狂转身)。
  2. 面试时调动你的幽默细胞,尽量把面试气氛调得愉快一点,这样面试官能更深的记住你。
  3. 说自己优点的时候一定辅以证据,不然面试官只会当作耳边风
  4. 不会的问题不要强答,小心有坑,可以这样说:“不好意思这个问题我不会,但是如果让我来设计我会.......”
  5. 面试其实是一个双向选择,面试官在评估你的表现,同时由于面试官也代表公司,他的素质及提的问题也是你应该评估的方面,所以不要紧张。
  6. 使用幕布,在每次面试前将自己总结的知识过一遍。我幕布上写了几万字的笔记,每次面试都拿出来看一遍,所以面试问到的基础我基本都能应答入流。

学习路线:

大部分职业都是需要有成长体系,才能让人有奋发向上的追求。架构师就是程序员这个群体成长道路上往往会出现的一个重要节点。每个好架构师都是一位出色的程序员。然而好的程序员进阶为架构师,并不容易。


对于有一定后台研发经验(尤其是5年以上经验)的程序员们来说,成为架构师的渴望更加强烈,因此会花更多时间学习,提升架构技能,但常常由于客观条件限制,面临着不少难点:接触不到一线实战架构技术,尤其是有一定的技术深度和难度架构技术。不了解核心技术点所处的具体背景是什么?同时,又迫切需要掌握:业界目前主流干货技术 + 前沿技术,互联网核心技术硬技能 + 核心软技能,掌握架构技术的本质,知其然更知其所以然,架构筑基篇,深入内核,直击故障,拒绝蒙圈。

所以你需要一个明确的学习路线----这是一个典型的程序员的成长过程:

使用Java---->深入理解Java积累经验------>独立设计分析能力------>独当一面的多面手!

因此,你必须学习:

一、开源框架解析(各

程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。

那要如何正确的分析源码呢? 我们的目标应该放在最常用的框架上面:

2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!

 

二、架构师筑基

从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:内存模型,并发模式,线程模型,锁细节等等

2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!

 

三、高性能架构

我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。

2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!

 

四、微服务架构

关于微服务架构的取舍

在合适的项目,合适的团队,采用微服务架构收益会大于成本。微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。需要避免为了“微服务”而“微服务”。微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。

2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!

 

五、团队协作

开发工具工程化

通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。程序员的战斗,往往不是一个人的战斗,我们如何在一个平台下高效的去重,进行代码review,对功能进行调整,debug,做到在统一的规划下步步为营,混乱的堆代码的过程中找到自己的记录。这一切都依赖于有效的工具。

2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!

 

六、B2C项目实战

项目实战

要想立足于互联网公司,且能在互联网浪潮中不被淹没,对于项目的开发实战演练是不必可少的技能,也是对自身能力的一个衡量,有多少的量对等于获得多少的回报。看似简单的一个项目需求图谱,其中的底层原理,实现原理又能知道多少?你搭建一个完整的B2C项目平台到底需要多少知识?这一切都是需要我们考量的。

2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!

 


看完我分享的这些学习路线你是否会觉得自己的技术有待加强,思维不应该只停留在表面呢。当然我这里也为想提升自己技术的同学准备了一份架构进阶视频资料和上面的高清思维导图。由于文章篇幅太长,需要的朋友一键三连后添加小助理获取哦



01 梳理知识体系,学会查漏补缺

 

关于知识体系的梳理,我个人主要分为以下5个部分,有针对性的,将这5个部分逐步击破,那么搞定面试是基本没什么问题了。


  • 并发编程:多线程,高并发,CAS,锁,容器,线程池底层
  • 性能调优:Mysql,IO及网络调优,算法调优,JVM
  • Spring全家桶:Spring,SpringMVC,MyBatis,IOC,AOP
  • 缓存数据库:Redis,mongoDB,MySQL
  • 分布式&微服务:SpringBoot,SpringCloud,docker,maven

02 根据要点,逐个击破(根据大纲内容来进行复习)

1.并发编程(核心技术笔记)


  • Java多线程技能
  • 对象及变量的并发访问
  • 线程间通信
  • Lock的使用
  • 定时器Timer
  • 单例模式与多线程
  • 拾遇增补

 

 

2.性能调优(Java性能调优+MySQL调优+JVM调优)

 

3.Spring全家桶(Spring全家桶学习脑图+SpringBoot使用笔记+源码深度解析)


  • Spring学习思维脑图(Xmind)

 


  • Spring使用笔记+实战文档

 

 

4.缓存数据库(MySQL+Redis+mongoDB)

 


03 最后看面试题来举一反三(刷题刷题刷题,重要事情说三遍)

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:


  • Java基础部分

 


  • 算法与编程

 


  • 数据库部分

 


  • 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)

 


看完我分享的这些学习路线你是否会觉得自己的技术有待加强,思维不应该只停留在表面呢。当然我这里也为想提升自己技术的同学准备了一份架构进阶视频资料和上面的高清思维导图。由于文章篇幅太长,需要的朋友一键三连后添加小助理获取哦



写在文末

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

最后提醒一下哦,如果你想要学习,却无奈于没有干货学习资料,以上所有的资料内容都可以免费分享给你,只需你多多支持一下即可

 

 

 


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
author-avatar
血影修罗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有