自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis知识点整理

3、 如果此时客户端准备好接收返回结果了,那么 Redis 中的 Socket01 会产生一个AE_WRITABLE 事件,同样压入队列中,事件分派器找到相关联的命令回复处理器,由命令回复处理器对 Socket01 输入本次操作的一个结果,比如 ok ,之后解除 Socket01 的AE_WRITABLE 事件与命令回复处理器的关联。在 Redis 中,Lua 脚本得到了广泛的应用,可以通过执行 Lua 脚本来实现一些复杂的操作,例如原子性地执行多个命令、实现复杂的数据操作逻辑等。

2024-04-04 00:50:36 1457 1

原创 JVM基础知识整理

继承ClassLoader,重写其findClass方法。通过name构造文件绝对路径读取文件。创建文件字节输入流。创建字节数组输出流。读取输入流,将数据写入到输出流。将字节数组输出流装换成二进制字节数组。调用ClassLoader的defineClass()方法用字节数组构造clazz对象。@Override// 这里通过入参 name 构造出文件的绝对路径来获取file。try {// 创建文件字节输入流// 创建字节数组输出流int b;= 0) {

2024-02-20 22:44:25 1963

原创 LinkedHashMap源码解析

LinkedHashMap是基于HashMap衍生出来的一种数据结构,它通过额外维护一个双向链表来实现记录访问顺序或者插入顺序。既然LinkedHashMap是继承自HashMap,那么很多底层和HashMap一致,这里我们只了解LinkedHashMap独有的特性。

2024-02-08 23:36:40 424

原创 HashMap源码解析

HashMap插入元素的方法比较复杂,其中涉及到 扩容/初始化、树化、LRC算法以及大量的if-else判断。这个node对象为HashMap的结点,它有四个属性:hash、key、value、next。keySet()用于获取所有的key,values()用于获取所有的value。这里只在代码中做一些逻辑上的简单注释。为了方便,在代码中通过注释解释。

2024-01-29 18:20:23 336

原创 ReentrantLock源码解析

抽象方法,用于子类继承,在公平锁和非公平锁种会分别做具体的实现。

2024-01-23 23:23:34 342

原创 AbstractQueuedSynchronizer源码解析

AbstractQueuedSynchronizer从名字可以看到三个信息:抽象的、同步的队列。它提供了同步状态、阻塞与唤醒线程以及先进先出队列的基础框架。JDK中许多并发工具类的实现都基于AQS,如ReentrantLock。

2024-01-20 23:02:50 1632

原创 LinkedList源码解析

基础源码比较简单,建议手写一遍。

2024-01-15 20:53:03 337

原创 源码解析链接

源码链接1、ArrayList2、LinkedList3、HashMap4、TreeMap5、HashSet6、LinkedHashMap7、ConcurrentHashMap8、AbstractQueuedSynchronizer9、ReentrantLock10、ReentrantReadWriteLock

2024-01-15 20:09:27 353

原创 ArrayList源码解析

ArrayList是一个基于数组来实现动态扩容的集合,具有良好的查询性能。

2024-01-15 20:08:00 376

原创 java基础之多线程篇

Lock锁是API级别的,提供了相应的接口和对应的实现类。这种方式实现锁会更加的灵活(区别于synchronized锁是JVM级别的)。synchronized锁是Java中的关键字,依靠JVM来进行识别,是虚拟机级别的(区别于Lock锁,Lock锁是API级别的)。让同一个时刻最多只有一个线程能持有对象锁,其他线程在想获取这个对象锁就会被阻塞,不用担心上下文切换的问题。Lock锁是显式锁,需要手动开启和关闭锁(别忘了最后一定要关闭锁);同步锁也叫对象锁,是锁在对象上的,不同的对象就是不同的锁。

2023-04-20 21:55:51 95

原创 java基础之集合篇

ArrayList是基于数组来实现动态扩容。size()为实际元素个数,elementData.length为容量。linkedList相对比较简单,有空手撕一份简易版代码。

2023-04-20 21:51:54 99 1

原创 java基础之关键字篇

慢慢学习,慢慢成长。

2023-04-20 21:44:57 92 1

空空如也

空空如也

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

TA关注的人

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