
读书笔记
文章平均质量分 94
读书笔记会陆续在这里更新
ΘLLΘ
ΘLLΘ的博客!
展开
-
【读书笔记】-《Redis设计与实现》数据结构与对象
文章目录【读书笔记】-《Redis设计与实现》数据结构与对象(一)1.简单动态字符串1.1 SDS的定义1.2 SDS与C字符串的区别1.2.1 常数复杂度获取字符串长度1.2.2 杜绝缓冲区溢出1.2.3 减少修改字符串时带来的内存重分配次数1.2.4 二进制安全1.2.5 兼容部分C字符串函数1.2.6 总结1.3 重点回顾2.链表2.1 链表和链表节点的实现2.2 重点回顾3.字典3.1 字典的实现3.1.1 哈希表3.1.2 哈希表节点3.1.3 字典3.2 哈希算法3.3 解决键冲突3.4 reh原创 2022-03-13 09:41:32 · 598 阅读 · 10 评论 -
《Java并发编程的艺术》读后笔记-FutureTask详解(第十章)
文章目录《Java并发编程的艺术》读后笔记-FutureTask详解(第十章)1.FutureTask简介2.FutureTask的使用3.FutureTask的实现《Java并发编程的艺术》读后笔记-FutureTask详解(第十章)1.FutureTask简介FutureTask除了实现Future接口外,还实现了Runnable接口。因此,FutureTask可以交给Executor执行,也可以由调用线程直接执行(FutureTask.run())。根据FutureTask.run()方法被执原创 2022-02-04 12:27:28 · 396 阅读 · 3 评论 -
《Java并发编程的艺术》读后笔记-ScheduledThreadPoolExecutor详解(第十章)
文章目录《Java并发编程的艺术》读后笔记-ScheduledThreadPoolExecutor详解(第十章)1.ScheduledThreadPoolExecutor简介2.ScheduledThreadPoolExecutor的运行机制3.ScheduledThreadPoolExecutor的实现《Java并发编程的艺术》读后笔记-ScheduledThreadPoolExecutor详解(第十章)1.ScheduledThreadPoolExecutor简介ScheduledThreadPo原创 2022-02-04 09:53:58 · 894 阅读 · 1 评论 -
《Java并发编程的艺术》读后笔记-ThreadPoolExecutor详解(第十章)
文章目录《Java并发编程的艺术》ThreadPoolExecutor详解(第十章)1.ThreadPoolExecutor简介2.FixedThreadPool详解3.SingleThreadExecutor详解4.CachedThreadPool详解《Java并发编程的艺术》ThreadPoolExecutor详解(第十章)1.ThreadPoolExecutor简介Executor框架最核心的类是ThreadPoolExecutor,它是线程池的实现类,主要由下列4个组件构成:corePoo原创 2022-02-02 21:03:12 · 354 阅读 · 0 评论 -
《Java并发编程的艺术》读后笔记-Executor框架简介(第十章)
文章目录《Java并发编程的艺术》Executor框架简介(第十章)1.Executor框架的两级调度模型2.Executor框架的结构与成员2.1 Executor框架的结构2.2 Executor框架的成员一、ThreadPoolExecutor二、ScheduledThreadPoolExecutor三、Future接口四、Runnable接口和Callable接口《Java并发编程的艺术》Executor框架简介(第十章)1.Executor框架的两级调度模型在HotSpot VM的线程模型中原创 2022-01-18 14:32:55 · 932 阅读 · 1 评论 -
《Java并发编程的艺术》读后笔记-Java中的线程池(第九章)
文章目录《Java并发编程的艺术》读后笔记-Java中的线程池(第九章)1.线程池的实现原理2.线程池的使用2.1 线程池的创建2.2 向线程池提交任务2.3 关闭线程池2.4 合理地配置线程池2.5 线程池的监控《Java并发编程的艺术》读后笔记-Java中的线程池(第九章)1.线程池的实现原理当向线程池提交一个任务之后,线程池的处理流程如下:线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下个流程。线程池判断原创 2022-01-16 16:36:11 · 315 阅读 · 13 评论 -
《Java并发编程的艺术》读后笔记-Java中的13个原子操作类(第七章)
文章目录《Java并发编程的艺术》读后笔记-Java中的13个原子操作类(第七章)1.原子更新基本类型类2.原子更新数组3.原子更新引用类型4.原子更新字段类《Java并发编程的艺术》读后笔记-Java中的13个原子操作类(第七章)1.原子更新基本类型类使用原子的方式更新基本类型,Atomic包提供了以下3个类:AtomicBoolean:原子更新布尔类型AtomicInteger:原子更新整型AtomicLong:原子更新长整型以上3个类提供的方法几乎一模一样,所以这里仅以AtomicI原创 2022-01-14 18:39:56 · 250 阅读 · 19 评论 -
《Java并发编程的艺术》读后笔记-Java中的并发工具类(第八章)
文章目录《Java并发编程的艺术》读后笔记-Java中的并发工具类(第八章)1.等待多线程完成的CountDownLatch2.同步屏障CyclicBarrier2.1 CyclicBarrier简介2.2 CyclicBarrier应用场景2.3 CyclicBarrier和CountDownLatch的区别3.控制并发线程数的Semaphore3.1 Semaphore简介3.2 Semaphore应用场景4.线程间交换数据的Exchanger4.1 Exchanger简介4.2 Exchanger应用原创 2022-01-13 16:45:25 · 350 阅读 · 27 评论 -
《Java并发编程的艺术》读后笔记-第五章 Java中的锁
文章目录《Java并发编程的艺术》读后笔记-第五章 Java中的锁第五章 Java中的锁1.Lock接口1-1 定义1-2 Lock的使用1-3 Lock与synchronized区别1-4 Lock 的API2.队列同步器2-1 定义2-2 队列同步器的接口和示例2-3 队列同步器的实现分析1)同步队列2)独占式同步状态获取与释放3.重入锁和公平锁3-1 定义3-2 ReentrantLock实现重进入3-3 公平与非公平获取锁的区别4.读写锁4-1 定义4-2 读写锁的接口与示例4-3 读写锁的实现原创 2021-11-10 10:25:47 · 658 阅读 · 13 评论 -
《深入理解Java虚拟机》读后笔记-垃圾收集算法
文章目录《深入理解Java虚拟机》读后笔记-垃圾收集算法1.概述2.如何判断对象已死?2.1 引用计数算法2.2 可达性分析算法2.3 Java中的引用2.4 回收方法区3. 垃圾收集算法3.1 分代收集理论3.2 标记-清除算法3.3 标记-复制算法3.4 标记-整理算法《深入理解Java虚拟机》读后笔记-垃圾收集算法1.概述垃圾收集需要完成的三件事情:哪些内存需要回收?什么时候回收?如何回收?对于Java内存运行时区域的各个部分:程序计数器、虚拟机栈、本地方法栈:这三个区域随线原创 2021-12-30 17:06:16 · 389 阅读 · 42 评论 -
《深入理解Java虚拟机》读后笔记-HotSpot虚拟机对象探秘
文章目录《深入理解Java虚拟机》读后笔记-HotSpot虚拟机对象探秘1.对象的创建2.对象的内存布局2.1 对象头2.2 实例数据2.3 对齐填充3.对象的访问定位《深入理解Java虚拟机》读后笔记-HotSpot虚拟机对象探秘基于实用优先的原则,这里以最常用的虚拟机HotSpot和最常用的内存区域Java堆为例,深入探讨一下HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。1.对象的创建在Java语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已:U原创 2021-12-30 18:27:11 · 1480 阅读 · 24 评论 -
《Java并发编程的艺术》读后笔记-第一章 并发编程的挑战
文章目录《Java并发编程的艺术》读后笔记-part1第一章 并发编程的挑战1.上下文切换1.1多线程就一定快吗?1.2如何减少上下文切换呢?2.死锁2.1避免死锁的几个方法3.资源限制的挑战《Java并发编程的艺术》读后笔记-part1第一章 并发编程的挑战并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制问题原创 2021-08-03 17:55:29 · 282 阅读 · 2 评论 -
《深入理解Java虚拟机》读后笔记-垃圾收集器
文章目录《深入理解Java虚拟机》读后笔记-垃圾收集器1.概述2.Serial收集器3.ParNew收集器4.Parallel Scavenge收集器5.Serial Old收集器6.Parallel Old收集器7.CMS收集器8.Garbage First收集器9.内存分配与回收策略9.1 对象优先在Eden分配9.2 大对象直接进入老年代9.3 长期存活的对象将进入老年代9.4 动态对象年龄判定9.5 空间分配担保《深入理解Java虚拟机》读后笔记-垃圾收集器1.概述如果说收集算法是内存回收的方原创 2021-12-31 12:05:00 · 638 阅读 · 18 评论 -
《Java并发编程的艺术》读后笔记-第四章 Java并发编程基础
文章目录《Java并发编程的艺术》读后笔记-part4第四章 Java并发编程基础1.线程简介1.1什么是线程?1.2为什么要使用多线程?1.3线程优先级1.4线程的状态1.5Daemon线程2.启动和终止线程2.1构造线程2.2启动线程2.3理解中断3.线程间的通信3.1volatile和synchronized关键字3.2等待/通知机制3.3等待/通知的经典范式3.4管道输入/输出流3.5Thread.join()的使用3.6ThreadLocal的使用《Java并发编程的艺术》读后笔记-part4原创 2021-08-09 14:15:53 · 431 阅读 · 2 评论 -
《深入理解Java虚拟机》读后笔记-运行时数据区域
文章目录《深入理解Java虚拟机》读后笔记-运行时数据区域1.程序计数器2.Java虚拟机栈3.本地方法栈4.Java堆5.方法区6.运行时常量池7.直接内存《深入理解Java虚拟机》读后笔记-运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存将会包括以下几个运行原创 2021-12-31 09:24:51 · 419 阅读 · 21 评论 -
《Java并发编程的艺术》读后笔记-第二章 Java并发机制的底层实现原理
文章目录《Java并发编程的艺术》读后笔记-part2第二章 Java并发机制的底层实现原理1.volatile的应用1.1volatile的定义与实现原理2.synchronized的实现原理和应用2.1Java对象头2.2锁的升级与对比3.原子操作的实现原理3.1处理器如何实现原子操作3.2Java如何实现原子操作《Java并发编程的艺术》读后笔记-part2第二章 Java并发机制的底层实现原理Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码原创 2021-08-05 07:51:10 · 344 阅读 · 2 评论