会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
stevenczp
博客园
首页
新随笔
联系
管理
订阅
[置顶]
阅读源码系列
摘要: Java集合框架 JDK7集合框架源码阅读(一) ArrayList JDK7集合框架源码阅读(二) LinkedList JDK7集合框架源码阅读(三) HashMap JDK7集合框架源码阅读(四) LinkedHashMap JDK7集合框架源码阅读(五) Hashtable JDK7集合框架
阅读全文
posted @ 2017-07-07 17:01 qeDVuHG
阅读(530)
评论(0)
推荐(0)
[置顶]
近期计划
摘要: 完结对<Cryptography I>的学习。预计时间:3月底。 实际完成时间:3月23日 读完<垃圾回收的算法与实现>。预计时间:4月底 勉强读完一半,发现功力不够,暂时封存 读完 《图解TCP/IP》 完成时间:5月16日 读完<TCP/IP详解 卷1:协议> 完成时间:5月17日(读完关键章节
阅读全文
posted @ 2017-03-13 14:54 qeDVuHG
阅读(337)
评论(0)
推荐(0)
2018年8月13日
Redis 源码走读(二)对象系统
摘要: Redis设计了多种数据结构,并以此为基础构建了多种对象,每种对象(除了新出的 stream 以外)都有超过一种的实现。 redisObject 这个结构体反应了 Redis 对象的内存布局 可以看出,robj 用4个 bit 存储对象类型,4个 bit 存储对象的底层数据结构 以及 robj 的固
阅读全文
posted @ 2018-08-13 23:42 qeDVuHG
阅读(405)
评论(0)
推荐(0)
2018年7月28日
Redis 源码走读(一)事件驱动机制与命令处理
摘要: eventloop 从 server.c 的 main 方法看起 aeMain.c 标准的事件驱动框架,在死循环中调用aeProcessEvents方法 aeProcessEvents 方法比较长,里面会处理两种事件TimeEvent 与 FileEvent,本文关注的重点是 FileEvent a
阅读全文
posted @ 2018-07-28 21:30 qeDVuHG
阅读(1046)
评论(0)
推荐(0)
2018年3月21日
basic paxos解析
摘要: basic paxos是我见过最难懂的算法,我最近一个月都在研究这个东西,自认有一些粗浅的心得,在这里写一下我对它的理解 为了降低理解难度,本文使用了大量的比喻,可能词不达意,见谅 basic paxos只为了解决一个问题:一个分布式系统如何就某个值(决议)达成一致。 先给出Wiki上对paxos的
阅读全文
posted @ 2018-03-21 18:06 qeDVuHG
阅读(330)
评论(0)
推荐(0)
2018年3月1日
ThreadLocal深度解析
摘要: 本文基于jdk1.8.0_66写成 0. ThreadLocal简介 ThreadLocal可以提供线程内的局部对象,合理的使用可以避免线程冲突的问题比方说SimpleDateFormat是线程不安全的,但是如果用ThreadLocal给每个线程分配一个SimpleDateFormat对象,我们就可
阅读全文
posted @ 2018-03-01 11:30 qeDVuHG
阅读(532)
评论(0)
推荐(0)
2017年12月11日
MySQL InnoDB MVCC深度分析
摘要: 关于MySQL的InnoDB的MVCC原理,很多朋友都能说个大概: 每行记录都含有两个隐藏列,分别是记录的创建时间与删除时间 每次开启事务都会产生一个全局自增ID 在RR隔离级别下 INSERT -> 记录的创建时间 = 当前事务ID,删除时间 = NULL DELETE -> 记录的创建时间不动,
阅读全文
posted @ 2017-12-11 00:30 qeDVuHG
阅读(6350)
评论(3)
推荐(3)
2017年12月6日
java泛型详解
摘要: 1. extends与super extends关键字限制了泛型类可以使用的泛型参数类型的上限(Upper Bound) super关键字限制了泛型类可以使用的泛型参数类型的下限(Lower Bound) 先定义几个简单的Class extends解析 直接赋值的限制 以泛型类List为例,如果我们
阅读全文
posted @ 2017-12-06 00:39 qeDVuHG
阅读(332)
评论(0)
推荐(0)
2017年12月4日
内存可见性,指令重排序,JIT。。。。。。从一个知乎问题谈起
摘要: 在知乎上看到一个问题《java中volatile关键字的疑惑?》,引起了我的兴趣 问题是这样的: 这段代码的主要目的是:主线程修改非volatile类型的全局变量stop,子线程轮询stop,如果stop发生变动,则程序退出。 但是如果实际运行这段代码会造成死循环,程序无法正常退出。 如果对Java
阅读全文
posted @ 2017-12-04 18:57 qeDVuHG
阅读(1949)
评论(0)
推荐(1)
如何在windows平台下使用hsdis与jitwatch查看JIT后的汇编码
摘要: 1. 安装hsids 这一步比较麻烦,需要提前安装cygwin,以及下载openjdk的源码 具体步骤请参考下面的两篇文章 How to build hsdis-amd64.dll and hsdis-i386.dll on Windows 在64位Windows上编译hsdis 编译时还遇到两个小
阅读全文
posted @ 2017-12-04 10:11 qeDVuHG
阅读(6941)
评论(4)
推荐(1)
2017年11月11日
纤程与Quasar
摘要: Java使用的是系统级线程,也就是说,每次调用new Thread(....).run(),都会在系统层面建立一个新的线程,然鹅新建线程的开销是很大的(每个线程默认情况下会占用1MB的内存空间,当然你愿意的话可以用-Xss来调小点),更不要说线程切换带来的开销了 为了节省开销,程序员玩出了很多花样。
阅读全文
posted @ 2017-11-11 14:33 qeDVuHG
阅读(1965)
评论(0)
推荐(0)
2017年11月5日
Disruptor源码分析
摘要: 本文将介绍Disruptor的工作机制,并分析Disruptor的主要源码 基于的版本是3.3.7(发布于2017.09.28) 水平有限,如有谬误请留言指正 0. 什么是Disruptor? Disruptor是一个开源的并发框架,提供了类似于Java中有界队列的功能,主要用于生产消费者场景。 与
阅读全文
posted @ 2017-11-05 16:20 qeDVuHG
阅读(2794)
评论(0)
推荐(0)
下一页
公告