Fork me on GitHub
摘要: 前言 请看上篇:Java 对象头那点事 文章中的源码都有不同程度缩减,来源于openjdk8的开源代码(tag:jdk8-b120)。 锁粗化过程 偏向锁 ①:markword中保存的线程ID是自己且epoch等于class的epoch,则说明是偏向锁重入。 ②:偏向锁若已禁用,进行撤销偏向锁。 ③ 阅读全文
posted @ 2022-05-18 16:54 竹根七 阅读(356) 评论(2) 推荐(1) 编辑
摘要: 时间不在于你拥有多少,而在于你怎样使用。 #1:Redisson 是什么 个人理解:一种 可重入、持续阻塞、独占式的 分布式锁协调框架,可从 ReentrantLock 去看它。 ①:可重入锁 拿到锁的线程后续拿锁可跳过获取锁的步骤,只进行value+1的步骤。 ②:持续阻塞 获取不到锁的线程,会在 阅读全文
posted @ 2021-05-08 18:30 竹根七 阅读(2601) 评论(2) 推荐(5) 编辑
摘要: ## 背景 当我们一个接口响应报文比较大的时候,超过几兆甚至几十兆的情况下,减少响应体的报文大小是能有效减少响应时间的。 ## spring boot 配置 ```yaml server: compression: ## 开启服务端的报文压缩 enabled: true ## 只压缩响应类型为app 阅读全文
posted @ 2023-07-11 12:03 竹根七 阅读(236) 评论(0) 推荐(1) 编辑
摘要: 前言: 关于Java的Selector,其实也没什么好说的。 说高级点就是就是多路复用。而多路复用是由于操作系统的支持,才能得以实现。 体悟: Java代码只是进行native 方法的调用。 核心代码在C/C++写的jdk源码中。 而多路复用是OS系统(Linux/Windows/MacOS)内核得 阅读全文
posted @ 2022-06-23 17:41 竹根七 阅读(883) 评论(0) 推荐(1) 编辑
摘要: 安装过程 1:RabbitMQ 延迟插件GitHub 2:各版本地址 如我的MQ版本是3.8.16,那么根据提示下载的版本是: ①:移动插件到RabbitMQ的插件目录下,如我的位置是:/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.16/plugins。 mv 阅读全文
posted @ 2022-05-13 12:04 竹根七 阅读(252) 评论(0) 推荐(0) 编辑
摘要: # 概览 ![image](https://img2022.cnblogs.com/blog/1537140/202205/1537140-20220510105906976-1040901789.png) *** - 对象头 存放:关于堆对象的布局、类型、GC状态、同步状态和标识哈希码的基本信息。 阅读全文
posted @ 2022-05-11 17:07 竹根七 阅读(635) 评论(1) 推荐(0) 编辑
摘要: 1:Channel是什么 通道表示与实体的开放连接,例如硬件设备、文件、网络套接字或能够执行一个或多个不同 I/O 操作(例如读取或写入)的程序组件。 1.1:Channel与Stream的对比 Stream Channel 为什么 是否支持异步 否 是 是否同时支持输入和输出 否 是 Stream 阅读全文
posted @ 2022-04-11 12:03 竹根七 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 1:Buffer 是什么 Buffer(缓冲区)本质上是一个由基本类型数组构成的容器。 我们先看看Buffer类的基本构成: public abstract class Buffer { // Invariants: mark <= position <= limit <= capacity pri 阅读全文
posted @ 2022-03-31 11:04 竹根七 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 1:什么是Dockerfile Dockerfile是一个文本文档,可以通过docker build 命令构建成一个镜像。 我们可以在Dockerfile中定义一系列的命令,构建出我们想要的镜像。 想要制作一个新的镜像离不开Dockerfile。 2:Dockerfile 相关命令解释 只做比较重要 阅读全文
posted @ 2021-12-31 22:43 竹根七 阅读(1107) 评论(0) 推荐(1) 编辑
摘要: #1:事务原理 ##1.1:aop/动态代理 类路径:org/springframework/aop/framework/CglibAopProxy.java ReflectiveMethodInvocation#proceed 后续: 作用:采用aop/动态代理的作用是为了在调用@Transact 阅读全文
posted @ 2021-09-01 18:05 竹根七 阅读(1304) 评论(0) 推荐(2) 编辑
摘要: 1:配置yum的aliyun源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 若报错:yum-config-manager: command not foun 阅读全文
posted @ 2021-07-01 18:39 竹根七 阅读(92) 评论(0) 推荐(1) 编辑