3 年 Java 经验硬核通过京东面试(已获 Offer), 谁说专科不能进大厂?
前言
17 年毕业到现在有三年多了,最近去面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,京东,最终收到点我达,网易 offer,蚂蚁金服二面挂掉, 菜鸟网络一个月了还在流程中...最终有幸去了京东。(跟我东哥做兄弟)
但是要特别感谢点我达的领导及 HR,真的非常非常好,很感谢他们一直的关照和指导。回馈小伙伴一波面经及我的复习宝典 (是真的很全,请往下看)
京东面试问到的问题
同时这些问题,我已经整理在了这份大厂 Java 面试进阶解析宝典里了,有需要的小伙伴可以点击这里即可获取到文章中的文档,资料!
JVM 底层的有哪几种垃圾回收算法,有什么区别。简述一下你了解的垃圾回收器有哪些,有什么区别。
简述一下 CAS 的实现原理
简单描述一下 java 中的线程池,线程池是如何保证工作线程不会销毁?如果设置线程池的 CorePoolSIze 为 0,MaxMumSize>1,描述一下内部是如何工作的。你在工作中是如何设置线程池的参数的为什么。
StringBuffer 和 StringBuilder 的区别
简单描述一下 ReentrantLock 的实现原理?
New String(“abc”) 在 jvm 内存区域会创建几个对象
LinkedList 和 ArrayList 有什么区别,你在工作中一般怎么用,为什么。
说一下你了解的 jdk 中的并发容器有哪些,你工作中用到哪些?描述一下 ArrayBlockingQueue 和 LinkedBlokingQueue 的区别。
简述一下 ConcrrentHashMap 插入数据的流程。
在 main 方法中启动 10 个线程,可以有哪些方式实现等待这 10 个线程完成工作再执行其他的任务。
有大量数据存储在某数组中,在多线程情况下,如何保证读取的正确性(所有线程并发读取这个数组中的数据,不少读一条也不多读一条)
说一下你在工作过程中对 jvm 的调优经验。
Mysql 中存在哪些隔离级别,有什么问题,分别怎么解决的。
Mysql 中有哪些储存引擎,简述一下你对 innodb 引擎的理解。
当一个查询语句的 where 条件是一个子查询,在高并发的情况下,mysql 是如何保证子查询的数据的正确性?这道题有点开放,可以配合不同的隔离级别加上 MVCC 和 readView 的知识答题,可以衍生到锁,体现深度。
描述一下 mysql 中行锁和表锁,什么情况下会用到行锁?
描述一下 Innodb 底层的存储结构,说一下 B 树和 B+树的区别
Select * from table where a=x and b>y 其中 a 和 b 是字段,如何建立索引提高这条语句的性能。
描述一下你哪些情况会导致索引失效
说一下你在工作过程中对 mysql 的性能优化?开放题,可以从索引,sql 优化,架构优化等入手
Spring 中有用到哪些设计模式分别用在什么地方?说一下如何解决循环依赖?
讲一下你对 aop 的理解?
Spring 中是如何处理事务的(@Transaction),如何保证不同的 dml 语句对应的操作在同一个事务下。在 @Trasaction 注解对应的方法中有多步事务性操作(同方法或者不同方法调用),如何只回滚其中的一个或多个操作。
某个方法加了 @Transacton 注解和 Sychronized 类锁,那么执行顺序是先走事务还是 Syc?这种方式在多线程情况下能否保证同步?
描述一下 SpringBoot 中的自动配置功能的实现。
你在工作过程中用到哪些 springCloud 的组件?
请问你用到了哪些 Dubbo 的组件,描述一下 Dubbo 的 rpc 流程。
请问你对分布式事务的理解,你在工作过程中用到哪些方案解决了分布式事务问题?如何用 mq 解决分布式事务问题。
描述一下你是如何利用 redis 和 zk 实现分布式锁的?如果用 redis 实现分布式锁,当任务实际用时超过键设置的超时时间,你如何解决?
描述一下 zk 是如何保证数据的一致性的?
描述一下 rocketMq 如何实现事务型消息的?
Redis 搭配持久层如 mysql,有哪些方式保证他们之间的数据一致性。
Redis 如何解决缓存雪崩,击穿,穿透?
设计一个全局唯一 Id 的实现方案。
如果 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 从入门到架构成长笔记你都需要阅读阅读,希望能够对你的职业发展有所帮助。
有需要的小伙伴可以点击这里即可获取到文章中的文档,资料!
版权声明: 本文为 InfoQ 作者【Java技术架构】的原创文章。
原文链接:【http://xie.infoq.cn/article/8fbce3aee0cfe1c62a60c6a75】。未经作者许可,禁止转载。
评论