声明 本文采用版本为: go1.17.5 本文仅供自己学习使用, 不做商业用途。 map 的结构: hmap hmap结构体定义 golang 中 map的实现结构为: 哈希...
声明 本文采用版本为: go1.17.5 本文仅供自己学习使用, 不做商业用途。 map 的结构: hmap hmap结构体定义 golang 中 map的实现结构为: 哈希...
为什么需要使用kafka 从本质上来讲,是因为互联网发展太快,使用单体架构无疑会是的体量巨大。而微服务架构可以很好的解决这个问题,但是服务与服务之间会还是出现耦合、访问控制等...
本文为学习记录,如有侵权,请联系删除 为何需要使用Thrift协议? 首先,Thrift是基于socket的,通过tcp协议来实现,即应用层协议 其次,现在大多使用分布式来进...
Thrift IDL基本语法 本文主要介绍Thrift的IDL基本语法。 IDL Thrift 采用IDL(Interface Definition Language)来定义...
创建线程的方式 创建线程主要有三种方法 : 继承Thread类,实现Runnable接口,实现Callable接口。 方法一,直接使用Thread t.start()调用后才...
线程池简单实现 源码 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量,ThreadPoolExecutor 类中的...
本文为本人观看博客文章所作笔记,仅供本人学习记录使用,详细文章请看这里[https://javadoop.com/post/design-pattern],如有侵权请联系我删...
TCP/UDP TCP 图片来源[https://blog.csdn.net/a19881029/article/details/29557837] 三次握手 三次握手流程:...
AQS基本结构 阻塞队列是从head后的结点开始的,也即 不包含头节点head 哨兵结点head作用 因为AQS本身实现的目的是要在无锁操作的情况下实现一个线程安全的同步队列...
索引 底层结构 hash表索引缺点: 利用hash存储需要将所有的文件添加到内存,比较耗费内存空间 如果所有的查询都是等值查询,那么hash确实很快,但是在实际场景中查找的数...
Mybatis xml解析流程 Xml解析的常见方式:DOM SAX Xpath ,Mybatis使用的时Xpath,因其足够简单。 对应代码: 执行流程:1、 执行SqlS...
基本属性 构造函数 put()方法 代码逻辑流程分析 判断tab是否需要初始化(关键点 sizeCtl的值),使用 initTable()进行初始化, 若不为null 则进入...
导读:阅读源码是提升自己代码能力的一个非常重要的手段,但是源码阅读有时候也非常麻烦,一定要找到入口点,然后动态地去看代码,一步步调试然后画图做笔记记录,才能在一团乱中清理出一...
与旧版本的主要区别 更小的锁粒度 jdk8中摒弃了segment锁,直接将hash桶的头结点当做锁。 旧版本的一个segment锁,保护了多个hash桶,而jdk8版本的一个...
关键属性 构造方法 无参构造 带参构造函数 选取带参构造函数二进行分析: 逻辑流程: ①传入相应的自定义的初始容量参数initialCapacity和负载因子loadFact...
(2)运行时数据区(我们核心关注这里的栈、堆、方法区)【这里面所存放的是类加载加载后的一些数据】 (3)执行引擎---是从内存中(可以任务是运行时数据区)获取相关数据来执行,...
类的编译 概要来说类的编译可分为以下3步:1、词法分析和输入到符号表 2、注解处理 3、语义分析和生成字节码 详细过程为: ①源代码文件*.java -> ②词法分析器 ->...
Hotspot中各种垃圾收集器 Serial收集器:串行回收 Serial收集器是一个单线程工作的收集器,它在进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。虽然其...
垃圾的标记阶段:对象存活判断 引用计数算法 此方法和操作系统中文件系统判文件存活很相似:在对象中添加一个引用计数器,每当有一个地方引用它时,它便让引用计数器的值加一;相反,当...