Fork me on GitHub
摘要: 前言 请看上篇:Java 对象头那点事 文章中的源码都有不同程度缩减,来源于openjdk8的开源代码(tag:jdk8-b120)。 锁粗化过程 偏向锁 ①:markword中保存的线程ID是自己且epoch等于class的epoch,则说明是偏向锁重入。 ②:偏向锁若已禁用,进行撤销偏向锁。 ③ 阅读全文
posted @ 2022-05-18 16:54 竹根七 阅读(250) 评论(2) 推荐(1) 编辑
摘要: 时间不在于你拥有多少,而在于你怎样使用。 #1:Redisson 是什么 个人理解:一种 可重入、持续阻塞、独占式的 分布式锁协调框架,可从 ReentrantLock 去看它。 ①:可重入 拿到锁的线程后续拿锁可跳过获取锁的步骤,只进行value+1的步骤。 ②:持续阻塞 获取不到锁的线程,会在一 阅读全文
posted @ 2021-05-08 18:30 竹根七 阅读(1747) 评论(2) 推荐(5) 编辑
摘要: 前言: 关于Java的Selector,其实也没什么好说的。 说高级点就是就是多路复用。而多路复用是由于操作系统的支持,才能得以实现。 体悟: Java代码只是进行native 方法的调用。 核心代码在C/C++写的jdk源码中。 而多路复用是OS系统(Linux/Windows/MacOS)内核得 阅读全文
posted @ 2022-06-23 17:41 竹根七 阅读(124) 评论(0) 推荐(1) 编辑
摘要: 前言 请看上篇:Java 对象头那点事 文章中的源码都有不同程度缩减,来源于openjdk8的开源代码(tag:jdk8-b120)。 锁粗化过程 偏向锁 ①:markword中保存的线程ID是自己且epoch等于class的epoch,则说明是偏向锁重入。 ②:偏向锁若已禁用,进行撤销偏向锁。 ③ 阅读全文
posted @ 2022-05-18 16:54 竹根七 阅读(250) 评论(2) 推荐(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 竹根七 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 概览 对象头 存放:关于堆对象的布局、类型、GC状态、同步状态和标识哈希码的基本信息。Java对象和vm内部对象都有一个共同的对象头格式。 (后面做详细介绍) 实例数据 存放:类的数据信息,父类的信息,对象字段属性信息。 如果对象有属性字段,则这里会有数据信息。如果对象无属性字段,则这里就不会有数据 阅读全文
posted @ 2022-05-11 17:07 竹根七 阅读(205) 评论(1) 推荐(0) 编辑
摘要: 1:Channel是什么 通道表示与实体的开放连接,例如硬件设备、文件、网络套接字或能够执行一个或多个不同 I/O 操作(例如读取或写入)的程序组件。 1.1:Channel与Stream的对比 Stream Channel 为什么 是否支持异步 否 是 是否同时支持输入和输出 否 是 Stream 阅读全文
posted @ 2022-04-11 12:03 竹根七 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 1:Buffer 是什么 Buffer(缓冲区)本质上是一个由基本类型数组构成的容器。 我们先看看Buffer类的基本构成: public abstract class Buffer { // Invariants: mark <= position <= limit <= capacity pri 阅读全文
posted @ 2022-03-31 11:04 竹根七 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1:什么是Dockerfile Dockerfile是一个文本文档,可以通过docker build 命令构建成一个镜像。 我们可以在Dockerfile中定义一系列的命令,构建出我们想要的镜像。 想要制作一个新的镜像离不开Dockerfile。 2:Dockerfile 相关命令解释 只做比较重要 阅读全文
posted @ 2021-12-31 22:43 竹根七 阅读(693) 评论(0) 推荐(1) 编辑
摘要: #1:事务原理 ##1.1:aop/动态代理 类路径:org/springframework/aop/framework/CglibAopProxy.java ReflectiveMethodInvocation#proceed 后续: 作用:采用aop/动态代理的作用是为了在调用@Transact 阅读全文
posted @ 2021-09-01 18:05 竹根七 阅读(416) 评论(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 竹根七 阅读(72) 评论(0) 推荐(1) 编辑
摘要: 本片主要讲SpringCloud Oauth2篇的实战改造,如动态权限、集成JWT、更改默认url、数据库加载client信息等改造。 同时,这应该也是我这系列博客的完结篇。 关于Oauth2,我也想说几句: 如果真的要应用到企业级项目当中去,必须要进行充足的准备,因为默认的配置、UI等很多都不是通 阅读全文
posted @ 2021-06-30 16:36 竹根七 阅读(588) 评论(0) 推荐(1) 编辑