Java已死?分布式宝典:限流 缓存 通讯
作者:互联网
**一面(电话面+后期在线coding)**
①你们为什么要使用mongdoDb?你们的这个系统中涉及到哪些表?
②hytrix 的实现原理是什么?隔离策略有哪些?你们使用的是哪一些?你们项目中哪些地方使用到了,使用场景是什么?为什么要使用?
③spirng 源码。
④rocketMq 的设计理念,数据存储,设计思想等。
⑤ConcurrentHashMap的底层实现原理
⑥你线上问题解决经验是什么?遇到了什么问题?应该怎么去解决?
⑦在线编码: 两个有序链表,合并成一个链表,然后进行算法的时间复杂度,空间复杂度分析。
**二面(电话面+后期在线coding)**
①tcp协议和uDP 协议的区别是什么?
②3次握手和4次挥手的过程是什么样的?
③怎么保证接口的幂等性?
④mysql的存储引擎的数据结构是什么?相比其余的数据结构,有什么优缺点?
⑤说一下你对SpringCloud,SpringBoot,Spring的理解
⑥java 在编译和运行过程中分别作了什么?
⑦在线编码: 给定一个字符串,单词之间以空格分隔,要求里面的单词倒装过来。
**三面(电话面,技术交叉面)**
①介绍一下springCloud 的组件,各组件的作用,你们是怎么用,你的理解是什么?
②springCloudbus 关联的消息中间有几种?支持哪几种?你觉的什么场景下,会用到springCLoudBus?
③springCloud里面的限流,限流是怎么内部实现的?怎么去挡住多余的请求,怎么实现限流的(线程池的工作原理)?
④什么时候该用mongoDB,什么时候使用mysql?该如何选择?
⑤你做过的项目数据量有多大呢?如果现在数据量特别大,或者一张表一种放不下了,应该怎么处理?分布分表应该怎么做?具体的某一张表怎么拆?(涉及到主键生成,各种主键生成策略对比,数据分片,以及关联数据的存储,主从复制)
⑥java 官方提供的创建的线程池的方式有几种?分别是什么?
⑦你们使用的java 版本是什么?java最新的版本是多少?你们为什么还在使用java8呢?
⑧你们的垃圾回收器是什么的? 为什么是使用CMS而不是G1? 你能介绍一下像CMS垃圾回收器,从对象创建,内存分配到垃圾回收整个过程吗?
⑨介绍一下策略模式,应该怎么用? 它能解决什么问题?从编码领域系统设计方,介绍一下我们怎么去实现一个策略模式?
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617363250753.jpg)
# 学习指南(按照开发经验对程序员进行分层)
**0~1年(搬砖):**
* **Java基础**(基本语法、面向对象、继承、多态、接口和抽象类、异常、内部类、集合、泛型、反射、I/O等)
* **Web编程**(Servlet+MySQL数据库+商品管理系统实战)
* **SSM框架入门到精通**(Spring+SpringMVC+Mybatis+SSM商品管理系统实战)
* **SpringBoot**(SpringBoot+SpringBoot商品管理系统实战)
**1~3年(技工):**
* **JVM深度进阶**(JVM内存区域+JVM运行时内存+垃圾回收与算法+JAVA 四种引用类型+GC分代收集算法 VS 分区收集算法+GC垃圾收集器等)
* **并发编程深度进阶**(并发机制的底层实现原理+内存模型+并发编程基础+锁+并发容器和框架+原子类操作+并发工具类+线程池+实战)
* **MySQL深度进阶**(Mysq|存储引擎选型及注意事项+解读Mysq|的共享锁及排它锁+分区+事务隔离级别+索引+Sql优化)
* **数据结构与算法**(Java程序员面试必问)
**3~5年(包工头):**
* **分布式消息中间件**(Zookpeer+Kafka+MQ+dubbo+SpringCloud等)
* **数据库**(主从复制+读写分离+分库分表)
* **高效存储**(Redis+MongoDB)
**5年以上(设计师):**
* **分布式扩展到微服务**(SpringBoot+SpringCloudAlibaba+Docker)
* **SSM框架源码解读**(Spring高级源码+SpringMVC源码+Mybatis源码)
**10年以上(送外卖送快递):**
**进入饿了么,开始送外卖(开个玩笑)**
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617363229923.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617363689214.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617364379832.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617364133868.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617364695878.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617364594154.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617364465466.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617365576567.jpg)
# 最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
“**道路是曲折的,前途是光明的**!”
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617365525359.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210707/1625617365232413.jpg)
**[更多Java核心笔记、真实面经、学习笔记等知识干货可以点击这里免费领取](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**
标签:20210707,Java,s2.51,已死,限流,https,images,cto,com 来源: https://blog.51cto.com/u_15290979/2995159