写点什么

3 年 Java 经验硬核通过京东面试(已获 Offer), 谁说专科不能进大厂?

发布于: 2021 年 07 月 16 日

前言

17 年毕业到现在有三年多了,最近去面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,京东,最终收到点我达,网易 offer,蚂蚁金服二面挂掉, 菜鸟网络一个月了还在流程中...最终有幸去了京东。(跟我东哥做兄弟)

但是要特别感谢点我达的领导及 HR,真的非常非常好,很感谢他们一直的关照和指导。回馈小伙伴一波面经及我的复习宝典 (是真的很全,请往下看)


京东面试问到的问题

同时这些问题,我已经整理在了这份大厂 Java 面试进阶解析宝典里了,有需要的小伙伴可以点击这里即可获取到文章中的文档,资料


  1. JVM 底层的有哪几种垃圾回收算法,有什么区别。简述一下你了解的垃圾回收器有哪些,有什么区别。

  2. 简述一下 CAS 的实现原理

  3. 简单描述一下 java 中的线程池,线程池是如何保证工作线程不会销毁?如果设置线程池的 CorePoolSIze 为 0,MaxMumSize>1,描述一下内部是如何工作的。你在工作中是如何设置线程池的参数的为什么。

  4. StringBuffer 和 StringBuilder 的区别

  5. 简单描述一下 ReentrantLock 的实现原理?

  6. New String(“abc”) 在 jvm 内存区域会创建几个对象

  7. LinkedList 和 ArrayList 有什么区别,你在工作中一般怎么用,为什么。

  8. 说一下你了解的 jdk 中的并发容器有哪些,你工作中用到哪些?描述一下 ArrayBlockingQueue 和 LinkedBlokingQueue 的区别。

  9. 简述一下 ConcrrentHashMap 插入数据的流程。

  10. 在 main 方法中启动 10 个线程,可以有哪些方式实现等待这 10 个线程完成工作再执行其他的任务。

  11. 有大量数据存储在某数组中,在多线程情况下,如何保证读取的正确性(所有线程并发读取这个数组中的数据,不少读一条也不多读一条)

  12. 说一下你在工作过程中对 jvm 的调优经验。

  13. Mysql 中存在哪些隔离级别,有什么问题,分别怎么解决的。

  14. Mysql 中有哪些储存引擎,简述一下你对 innodb 引擎的理解。

  15. 当一个查询语句的 where 条件是一个子查询,在高并发的情况下,mysql 是如何保证子查询的数据的正确性?这道题有点开放,可以配合不同的隔离级别加上 MVCC 和 readView 的知识答题,可以衍生到锁,体现深度。

  16. 描述一下 mysql 中行锁和表锁,什么情况下会用到行锁?

  17. 描述一下 Innodb 底层的存储结构,说一下 B 树和 B+树的区别

  18. Select * from table where a=x and b>y 其中 a 和 b 是字段,如何建立索引提高这条语句的性能。

  19. 描述一下你哪些情况会导致索引失效

  20. 说一下你在工作过程中对 mysql 的性能优化?开放题,可以从索引,sql 优化,架构优化等入手

  21. Spring 中有用到哪些设计模式分别用在什么地方?说一下如何解决循环依赖?

  22. 讲一下你对 aop 的理解?

  23. Spring 中是如何处理事务的(@Transaction),如何保证不同的 dml 语句对应的操作在同一个事务下。在 @Trasaction 注解对应的方法中有多步事务性操作(同方法或者不同方法调用),如何只回滚其中的一个或多个操作。

  24. 某个方法加了 @Transacton 注解和 Sychronized 类锁,那么执行顺序是先走事务还是 Syc?这种方式在多线程情况下能否保证同步?

  25. 描述一下 SpringBoot 中的自动配置功能的实现。

  26. 你在工作过程中用到哪些 springCloud 的组件?

  27. 请问你用到了哪些 Dubbo 的组件,描述一下 Dubbo 的 rpc 流程。

  28. 请问你对分布式事务的理解,你在工作过程中用到哪些方案解决了分布式事务问题?如何用 mq 解决分布式事务问题。

  29. 描述一下你是如何利用 redis 和 zk 实现分布式锁的?如果用 redis 实现分布式锁,当任务实际用时超过键设置的超时时间,你如何解决?

  30. 描述一下 zk 是如何保证数据的一致性的?

  31. 描述一下 rocketMq 如何实现事务型消息的?

  32. Redis 搭配持久层如 mysql,有哪些方式保证他们之间的数据一致性。

  33. Redis 如何解决缓存雪崩,击穿,穿透?

  34. 设计一个全局唯一 Id 的实现方案。

  35. 如果 cpu 占用率过高,如何定位到是项目中哪一行代码出了问题。 如何提升的

如今技术发展的速度非常快,接下来你该从哪些地方开始自己的一个正确系统的学习方向呢? 给那些开发 1 到 5 年的 Java 朋友们:


同时分享大佬的后端学习笔记,非常适合 1 到 5 年的 Java 朋友们

这份笔记把 Java 后端 95%的技术体系都整理记载清楚了,并且通过工作时间年限来划分了学习的技术! 下面会详细展示这份 Java 从入门到架构成长笔记的内容及涵盖的知识点,有需要的小伙伴可以点击这里即可获取到文章中的文档,资料


Java 从入门到架构成长笔记目录

新手村—入门到开发半年(吃透 12K+起步)

  • Java 基础篇: 基础语法+集合+异常+反射+IO+TCP+多线程

  • Java web 篇: MySQL 数据库+JDBC+Servlet

  • 三大框架篇: Spring+SpringMVC+MyBatis+商城实战项目

  • SpringBoot+SpringCloud 分布式开发篇: 微服务入门+实战

  • 项目经验篇: 秒杀系统设计+SpringBoot 商城实战

Java 基础篇


三大框架篇


项目经验篇(秒杀+SpringBoot 实战)


打怪升级第一步—开发 1 到 3 年

  • Java 并发编程底层篇: 并发基础+JMM+线程池+阻塞队列+并发集合+并发工具类+锁+atomic

  • JVM 与性能调优篇: 内存区域+垃圾回收器和内存分配策略+类加载机制+调优

  • 网络编程篇: TCP/HTTP+Netty+多路复用

  • SQL 调优篇: SQL 优化原则+锁+索引+调优+事务+执行计划

  • Tomcat 底层篇: 架构+基础+调优+集群+安全

  • 设计模式篇: 六大原则+23 种设计模式

  • Spring 源码篇: IOC+AOP+声明事务源码解读

  • MyBatis 源码篇: MyBaits 源码架构分析+MyBaits 核心模块分析+二级缓存

并发编程篇


JVM 及调优篇


网络编程篇


MySQL 调优篇


设计模式篇


Spring 源码篇


MyBatis 源码篇


打怪升级第二步:4-5 年资深高开


  • 分布式思维基础: 大型互联网架构演进过程+架构师应具备的分布式知识+主流分布式架构设计详解

  • 分布式监控: Zookeeper+Nginx

  • 分布式消息队列: RabbitMQ+RocketMQ+Kafka

  • 分布式存储: Redis+MongDB+Mycat

分布式监控


消息队列


分布式存储


打怪升级第三步:5 到 7 年架构进阶

  • 微服务架构进阶: Docker+SpringCloud+Spring Cloud Alibaba+K8S

  • 亿级流量性能调优实战: 调优基础+基础代码性能优化+设计模式与性能+并发编程性能优化+JVM 深度调优+数据库性能调优

  • 一线大厂分布式场景实战: 分布式事务解决方案+一线大厂单点登陆方案+分布式任务调度方案+高并发场景下分布锁方案+缓存解决方案

性能调优实战笔记


大厂分布式场景实战笔记


总结

同样是做 Java,有的人工作 5 年工资没变化,有的人工作 2 年就已经年薪 30W。这个现象或许前几年还不明显, 但随着近几年后端技术疯了一般的快速发展,曾经那个只要会 CRUD 就能走遍天下的时代早已不在了,人才水平的分化也越来越明显。

竞争永远都是非常残酷的,毕竟成为一个架构师不是那么容易的,一个架构师的成长来自于机会,努力及天分 !在这个后浪奔腾的时代,不管是你是刚工作还是有几年开发了,我相信以上这份 Java 从入门到架构成长笔记你都需要阅读阅读,希望能够对你的职业发展有所帮助。

有需要的小伙伴可以点击这里即可获取到文章中的文档,资料
发布于: 2021 年 07 月 16 日阅读数: 11
用户头像

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

领取文中资料加微信:MXC1146 即可获取

评论

发布
暂无评论
3 年 Java 经验硬核通过京东面试(已获 Offer), 谁说专科不能进大厂?