RabbitMQ学习笔记 RabbitMQ 一、概述 1.1 JMS Java Message Service,java平台中面向消息中间件的API,类似JDBC,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。 1.2工作原理 RabbitMQ基本结构 image-20210223140145763 组成部分说明如下: Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue 2022-06-19 学习笔记
PriorityQueue源码解析 PriorityQueue源码解析 概述 PriorityQueue 采用数组的形式保存数据,逻辑上采用二叉堆储存 PriorityQueue 数组排序并非按照插入顺序,而是需要根据比较器判断; 插入自定义对象时,自定义对象需要实现Comparable接口 ,或者使用外部比较器对象,外部比较器对象需实现Compartor接口 PriorityQueue 不能加入null值 非线程安全 自动扩容。 2022-06-19 学习笔记 源码分析
Mybatisplus源码分析(待续) Mybatisplus源码分析 一、自动配置类MybatisPlusAutoConfiguration implements InitializingBean 123456789@Configuration@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})@Condition 2022-06-19 学习笔记 源码分析
MySQL高级(索引、查询优化、主从复制) 1.索引 什么是索引? 索引是一种数据结构。索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。 作用: (1)快速取数据; (2)保证数据记录的唯一性; (3)实现表与表之间的参照完整性; (4)在使用ORDER by、group by子句进行数据检索时,利用索引可以减少排序和分组的时间。 索引分类 单值索引 唯一索引(列数据唯一) 复合索引(多列索引) 哪些情况下需要建立索引? 1.主 2022-06-19 学习笔记 MySQL
HashMap源码通俗解读 JDK1.8HashMap源码分析 概要 HashMap允许key为null,value为null,由于是hash存放,所以遍历时无序。 底层的数组称为哈希桶,每个桶(数组元素)存放的是链表,链表中每个结点就是哈希表的元素 在JDK8中,当链表长度达到8,会转化成红黑树,以提升它的查询、插入效率,它实现了Map<K,V>, Cloneable, Serializable接口。 因其底层 2022-06-19 源码分析
Docker 学习笔记 1.简介 Docker是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。 image-20200714183144806 2.核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统 2022-06-19 学习笔记
ConcurrentHashMap源码分析(待续) ConcurrentHashMap源码分析(待续) 概要 HashTable虽然是线程安全的,但是并发操作时是全表锁,性能非常低下 HashTable线程安全 HashMap操作高效,但是并发操作不能保证线程安全,JDK1.7之前采用头插法扩容时可能会形成环状链表,导致get操作时CUP空转。所以为了解决HashMap线程安全问题,ConcurrentHashMap就诞生了。 Concurr 2022-06-19 源码分析
Mybatis学习笔记 Mybatis框架 Mybatis 是一个使用java编写的持久层框架。它封装了 JDBC的很多细节 ,使开发者只需要关注 sql 语句,而无需关注注册驱动、创建连接、创建 Statement 等繁杂的过程。 采用了 ORM 思想 实现了结果集的封装 > ORM(Object Relational Mapping)对象关系映射。简单地说,就是把数据库表和实体类及实体类的属性对应起来,让我们可 2022-06-19 学习笔记