编程语言
首页 > 编程语言> > Java已死?分布式宝典:限流 缓存 通讯

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