摘要: Spring中文文档 Spring提供了两个核心功能,IOC和AOP 什么是IOC IOC为控制反转或依赖注入,实际就是将对象之间的依赖关系由程序代码控制转为由Spring通过配置文件或注解完成。 文档介绍: 在 Spring 中,构成应用程序主干并由 Spring IoC 容器 Managemen 阅读全文
posted @ 2021-04-05 00:06 Simple° 阅读(885) 评论(0) 推荐(0) 编辑
摘要: 1、扩展点机制 官方文档 什么是SPI SPI(Service Provider Interface)实际是一种服务提供者的发现机制,通过规范约束加载服务实现类实现接口与实现的扩展与解耦。 Java SPI Java SPI是Java内置的一套SPI机制,通过ServiceLoader加载META- 阅读全文
posted @ 2021-02-19 16:36 Simple° 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 1、ConcurrentHashMap 官方文档介绍: 键和值是不允许null存在的。 一个支持并发操作的哈希表,是线程安全的。操作方式与Hashtable一致。 获取数据的操作是非阻塞的,所以在并发读写的过程中,读取到的数据可能已经过时。 迭代器被设计为一次只能由一个线程使用. 聚合了状态的方法( 阅读全文
posted @ 2021-01-11 17:41 Simple° 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1、HashMap HashMap是基于哈希表的 Map 接口的实现。允许使用 null 值和 null 键。此类不保证数据顺序(Hash取模长度),特别是它不保证该顺序恒久不变(扩容)。且是非线程安全的。 2、结构 相比List,Hash的类图结构相对没那么复杂 2.1、Map 先来看下顶级接口M 阅读全文
posted @ 2020-11-30 06:58 Simple° 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 我们知道,ArrayList的底层使用一个Objectp[]数组实现的,特点是末尾添加元素快,根据下表返回数据块,缺点是再指定位置新增元素或者删除元素,需要移动位置后的所有元素.且数组需要连续内存空间,会产生碎片. 底层除了数组外,还能有其他实现吗? 答案是有的,那就是底层以链表实现集合功能. Li 阅读全文
posted @ 2020-11-14 17:03 Simple° 阅读(218) 评论(0) 推荐(0) 编辑
摘要: ArrayList: 基于数组实现可自动扩容的集合列表 允许插入NULL元素。 非线程安全 基于位置查询速度快, O(1) 指定位置新增和删除慢,涉及元素拷贝移动 1、接口 1.1、Iterable 提供foreach循环支持,通过iterator方法可以得到集合的迭代器对象Iterator。 1. 阅读全文
posted @ 2020-11-13 07:12 Simple° 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Kafka Kafk是一个流平台,这个平台上可以发布和订阅数据流,并把它们保存起来进行处理。 kafka的数据按照一定的顺序持久化保存,可以按需读取,数据分布在整个系统里,具备数据故障保障和性能伸缩能力。 kafka的数据被称为消息,有字节数组组成,消息通过主题进行分类,可以分为若干个分区,一个分区 阅读全文
posted @ 2019-12-20 09:13 Simple° 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 注:本文都是对官方文档的搬运: https://redis.io/documentation https://redis.io/topics/data-types-intro Redis的数据类型 Redis支持五种数据类型:Strings(字符串)、Hashes(哈希)、Lists(列表)、Set 阅读全文
posted @ 2019-07-27 21:50 Simple° 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 1、什么是消息中间件 消息队列中间件(MessageQueueMiddleware,简称为MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 1.1传递模式 1)点对点模式 基于队 阅读全文
posted @ 2019-07-20 19:03 Simple° 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 锁是Java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。 锁的获取和释放 线程释放锁时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存中。 线程获取锁时,JMM会把该线程对应的本地内存置为无效。从而使得被监视器保护的临界区代码必须从 阅读全文
posted @ 2019-07-14 14:17 Simple° 阅读(247) 评论(0) 推荐(0) 编辑