笔记
ElegantQ
这个作者很懒,什么都没留下…
展开
-
学习《Redis深度历险:核心原理和应用实践》的总结(上)
对《Redis深度历险:核心原理和应用实践》(作者:钱文品)这本书的知识进行了自己的理解总结。目录数据结构字符串数据结构list(列表)内部实现:快速列表hash(哈希)set(集合)zset(有序列表)内部实现:跳表分布式锁解决setnx(抢锁)和expire(给锁设置过期时间,防死锁)的原子操作问题解决业务时长超过锁过期时间的问题redis实现队列利用list实现异步消息队列解决队列空了导致客户端不断调用pop()、产生浪费资源的空轮询问题解决sleep导致的消息延迟问题利用zset实现延时队列Hy原创 2020-12-18 11:17:25 · 96 阅读 · 0 评论 -
JVM理解笔记(下)
学习JVM梳理的一些笔记。目录HotSpot虚拟机详解Java对象创建过程对象的定位访问的方式(通过引用如何去定位到堆上的具体对象的位置)类加载机制概念类加载的步骤如下双亲委派模型运行时包加载两份相同的class对象的情况特点两种类型的类加载器问题:Java程序对类的执行有几种方式类加载机制与接口ClassLoader类的卸载图解java文件转化成机器码HotSpot虚拟机详解Java对象创建过程(1)虚拟机遇到一条new指令时,首先检查这个指令的参数能否在常量池中定位到一个类的符号引用,并检查原创 2020-12-16 15:58:49 · 380 阅读 · 7 评论 -
JVM理解笔记(上)
学习JVM时梳理的一些笔记。Java运行时数据区虚拟机栈虚拟机栈是Java执行方法的内存模型。每个方法被执行的时候,都会创建一个栈帧,把栈帧压人栈,当方法正常返回或者抛出未捕获的异常时,栈帧就会出栈。(1)栈帧:栈帧存储方法的相关信息,包含局部变量数表、返回值、操作数栈、动态链接 a、局部变量表:包含了方法执行过程中的所有变量。局部变量数组所需要的空间在编译期间完成分配,在方法运行期间不会改变局部变量数组的大小。b、返回值:如果有返回值的话,压入调用者栈帧中的操作数栈中,并且把PC的值指向 方法调原创 2020-12-16 15:44:26 · 93 阅读 · 2 评论