自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 ReentrantReadWriteLock 源码

读写锁主要使用在读多写少的场景中,读写锁允许同一时刻被多个读线程访问,但是在写线程访问时,所有的读线程和其他的写线程都会被阻塞。还是基于AQS实现的。很多功能的实现和类似,还是基于AQS的state来确定当前线程是否拿到锁资源。在中,将state的高16位作为读锁的标识,而将低16位作为写锁的标识。其中,读写锁有以下几种规则:读读操作是共享的。写写操作是互斥的。读写操作是互斥的。写读操作是互斥的。单个线程获取写锁后,再次获取读锁,可以拿到。(写读可重入)

2022-10-06 00:26:18 172 1

原创 ReentrantLock 源码

中的lock方法,主要调用内部类Sync中的抽象lock方法。该方法主要有两套实现,一套是公平锁,一套是非公平锁。

2022-10-06 00:24:19 127

原创 Java 中的 ==、equals 和 hashCode 你真的分的清吗?

Java 中的 ==、equals 和 hashCode

2022-06-21 00:56:51 181

原创 一张图带你搞懂 Redis

最近,为了能够更系统地学习 Redis,一直在看极客时间上面的《Redis 核心技术与实战》专栏。专栏里面的内容不光老师讲的清晰易懂,Kaito 大佬在每篇文章评论区里面的内容也相当的硬核有料,算是对专栏内容的扩展和补强。(感兴趣的小伙伴也可以关注一下大佬的公众号:水滴与银弹,文章不仅内容逻辑清晰有条理,而且排版也很棒!)用了大概一周时间,已经把专栏第一部分基础篇的内容看完了,作者主要从 Redis 的基础架构、数据结构、高性能 IO 模型、持久化、数据同步、哨兵机制、切片集群等多个层面进行了讲解。

2022-05-26 20:00:00 446 2

原创 一篇文章带你了解Redis持久化中的AOF

为了实现Redis的数据持久化,Redis采用了AOF写后日志,与数据库的写前日志相比,是先执行命令,把数据写入内存,然后才记录日志。这样做的好处有两点: 第一是可以避免额外的检查开销,不会在日志中记录错误指令的日志,避免了Redis在恢复数据时出现错误; 第二是不会阻塞当前的写操作。 但AOF也存在两个潜在的风险:一是如果刚执行完一个命令,还没来得及记日志就宕机了,就会造成日志中的命令以及后面恢复数据时的数据丢失; 二是可能会阻塞下一个操作,因为AOF日志写入是在主线程中执行的

2022-05-20 16:36:49 247

原创 Mybatis代码生成器如何自定义注释

我们在使用Mybatis代码生成器生成mapper、po以及xml文件的时候,mapper中的方法和po的字段上一般会自动生成一些“无用”的注释,使得代码看起来很乱。为了解决这个问题,一般有三种方式:第一种就是通过配置generatorConfig.xml文件来精简注释,第二种就是通过实现CommentGenerator中的方法,让代码生成器生成我们自己想要的注释效果,第三种既可以做到自定义注释,还能省去get、set方法。修改generatorConfig.xml中的配置context&lt

2022-05-10 12:29:59 2585

原创 Spring源码学习笔记

Spring框架源码学习流程图剖析:

2022-05-10 12:17:36 94

原创 通过Comparator接口理解策略模式

在Java中,如果我们想要比较两个对象,一般会让这个对象实现Comparable接口。比如,在下面的代码中,Person类有两个属性,分别是height和weight。为了比较大小,我们这里重写了compareTo方法,通过height属性进行比较。public class Person implements Comparable<Person> { private Integer height; private Integer weight; public

2022-05-10 12:10:30 196

原创 Mybatis动态标签学习笔记

在XML文件中写SQL有以下几点建议: 建议1:对于绝大数查询,我们是返回统一字段,所以可以使用<sql />标签,定义SQL段。对于性能或者查询字段比较大的查询,按需要的字段查询。 建议2:对于数据库的关键字,使用大写。例如说,SELECT、WHERE等等。 建议3:基本是每“块”数据库关键字占用一行 示例如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC ..

2022-05-10 12:06:29 401

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除