摘要: redis是目前常用的由C语言实现的kv集群框架,本文将详细介绍redis底层6种数据结构,并介绍5种对象的实现方案。 1.自定义字符串SDS 如上所示,可以看出SDS也是以'\0'作为字符串结尾,而且没有将空字符计入buf长度,完全对用户透明。 SDS相对于C字符串的优势也很明显: O(1)复杂度 阅读全文
posted @ 2018-01-12 00:03 climber1990 阅读(156) 评论(0) 推荐(0)
摘要: 垃圾回收(GC)一直是java语言的重中之重。 1 对象状态鉴别 1.1 标记对象是否可回收一般有两种算法: 引用计数算法:给每个对象添加一个引用计数器,当引用一次时+1,当引用时效时-1,当计数器为0时即可回收。该算法最大的缺点是当多个对象相互循环引用时将用不释放。 可达性分析算法:将“GC Ro 阅读全文
posted @ 2017-10-18 22:52 climber1990 阅读(173) 评论(0) 推荐(0)
摘要: java是一门内存动态分配、垃圾自动回收的高级编程语言。 1 运行时数据分区 方法区 用来存储已被虚拟机加载的类信息、常亮、静态变量、即时编译后的代码等数据;在hotspot虚拟机中又被称为永久代,此外字符串常量池已经在java7版本后移除永久代。 运行时常量池是方法区的一部分,具有动态性,用于存放 阅读全文
posted @ 2017-10-15 23:08 climber1990 阅读(631) 评论(0) 推荐(0)