代码改变世界

随笔档案-2016年01月

原子操作

2016-01-31 09:33 by 微服务专家, 479 阅读, 收藏,
摘要: 大家都知道,读和写是两个操作,在多线程的时候通常需要加锁来保证其原子性,但是java自带的那一堆AutomicXX却不是这样做的 它们用的都是sun.misc.Unsafe里的方法,就是这几个compareAndSwapInt,compareAndSwapLong,和compareAndSwapOb 阅读全文

java对象占多少内存

2016-01-29 22:34 by 微服务专家, 557 阅读, 收藏,
摘要: 通常来说Hotspot jvm的对内存中的对象由以下几个部分组成 一个对象头,包含了一些整理工作所需信息 原始类型字段,不同类型大小各异(表1) 引用字段,占据4个字节(byte) 填充,在对象的末尾会有几个“浪费”了的字段,这样做是为了确保每个对象的开始地址都是字节的倍数。从而减少指向对象的指针的 阅读全文