![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 88
阿德小仔
你得先看中你自己,否则别人就认为你一钱不值。
展开
-
Tomcat组成与工作原理
开源的 Java Web 应用服务器,实现了 Java EE(Java Platform Enterprise Edition)的部 分技术规范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。Java EE 是 Sun 公 司为企业级应用推出的标准平台,定义了一系列用于企业级开发的技术规范,除了上述的之外,还有 EJB、Java Mail、JPA、JTA、JMS 等,而这些都依赖具体容器的实现。原创 2023-10-10 22:43:18 · 114 阅读 · 0 评论 -
RocketMQ介绍
今天和大家一起深入生产级别消息中间件 - RocketMQ 的内核实现,来看看真正落地能支撑万亿级消息容量、低延迟的消息队列到底是如何设计的。这篇文章我会先介绍整体的架构设计,然后再深入各核心模块的详细设计、核心流程的剖析。还会提及使用的一些注意点和最佳实践。对于消息队列的用处和一些概念不太清楚的同学强烈建议先看消息队列面试连环问,这篇文章介绍了消息队列的使用场景、基本概念和常见面试题。转载 2022-11-10 17:36:17 · 346 阅读 · 0 评论 -
RocketMQ与kafka的区别
kafka和RocketMQ的总体区别是,kafka设计初衷是用于日志传输,而RocketMQ的设计用于解决各类应用可靠的消息传输,阿里云官网承诺RocketMQ数据可靠性为10个9,服务可靠性为99.95%。kafka相比RocketMQ的优势1、单机吞吐量TPS可上百万,远高于RocketMQ的TPS7万每秒,适用于日志类消息。2、kafka支持多语言的客户端RocketMQ相比kafka的优势**1、保证消息不丢( 数据可靠性达10个9)2、可严格保证消息有序。转载 2022-11-10 17:13:06 · 2713 阅读 · 0 评论 -
kafka的rebalance机制
Reblance就像他的名称一样,意思是再平衡,平衡什么?平衡和之间的对应关系。本质上来讲,Reblance是一种协议,规定了一个Consumer Group下所有Consumer如何达成一致,来分配订阅Topic的每个分区,尽量让每个消费者分配到相对均匀的分区,使Consumer的资源都能得到充分利用,防止有些Consumer比较忙,有的Consumer比较闲。转载 2022-11-10 16:01:25 · 5176 阅读 · 0 评论 -
HashMap底层原理
HashMap 基于键 HashCode 值唯一标识一条数据,根据hashCode定位到数组的具体下标,然后对存储的链表进行遍历查找到需要的数据,复杂度O(n).其中链表中每个元素都是一个Entry实例,包换4个属性,key,value,hash,next指向。为了减小链表遍历的开销,java8改成数组+链表+红黑树的方式,当链表元素超过8后会将链表结构转化成红黑树,提高查询效率。时间复杂度为O(logN),长度小于8的话会重新转化成链表。原创 2022-10-18 16:56:52 · 253 阅读 · 0 评论 -
Spring加载流程
tomcat在启动ServletContext容器的时候会发布ServletContextEvent事件,Spring就通过实现ServletContextListener接口,监听该事件来监听ServletContext的生命周期。原创 2022-10-18 16:43:29 · 2687 阅读 · 1 评论 -
springMVC介绍
我们使用springMVC的时候,它的主要入口时dispatcherServlet类它最总实现了Servlet接口。Servlet初始化执行init()方法,其中springMVC子容器初始化的时候会调用DispatcherServlet的onRefresh()方法,而在onRefresh()方法中只做了一件事,就是调用initStrategies()方法来初始化springMVC的九大组件。原创 2022-10-18 14:59:27 · 145 阅读 · 0 评论 -
简单介绍Kafka
Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用Scala 语言编写,目前是 Apache 的开源项目。原创 2022-10-13 23:38:26 · 81 阅读 · 0 评论 -
java并发关键字
CountDownLatch类位于java.util.concurrent包下,是一个同步工具类 ,允许一个或多个线程一直等待其他线程的操作执行完后再执行相关操作。CountDownLatch 基于线程计数器来实现并发访问控制,主要用于主线程等待其他子线程都执行完毕后执行相关操作。原创 2022-10-11 11:27:15 · 253 阅读 · 0 评论 -
什么是AQS
AQS ( Abstract Queued Synchronizer )是一个抽象的队列同步器,通过维护一个共享资源状态( Volatile Int State )和一个先进先出( FIFO )的线程等待队列来实现一个多线程访问共享资源的同步框架。原创 2022-10-10 23:35:06 · 27496 阅读 · 1 评论 -
什么是 CAS
CAS (Compare And Swap)指比较并交换。CAS算法 CAS(V,E,N)包含3个参数,V表示要更新的变量,E表示预期的值,N表示新值。在且仅在V值等于E值时,才会将V值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,当前线程什么都不做。最后CAS返回当前V的真实值。原创 2022-10-10 22:58:41 · 155 阅读 · 0 评论