peerless_hero的博客

冠军的心是至死不渝!

CAS和ABA问题

CASCAS全称是CompareAndSwap,是一条CPU的原子指令,其作用是让CPU经过比较后原子地更新某个位置的值,CAS是靠硬件实现的,JVM只是封装了汇编调用,那些AtomicInteger类便是使用了封装汇编的接口。我们知道synchronized是一种悲观锁,它使得其它需要锁的线程挂...

2017-02-17 19:10:20

阅读数 1767

评论数 0

synchronized

在Java程序运行环境中,JVM需要对两类线程共享的数据进行协调: 1、保存在堆中的对象实例 2、保存在方法区中的Class实例在Java虚拟机中,每个对象和类在逻辑上都和一个监视器相关联。 (1) 对于对象来说,相关联的监视器保护对象的实例变量。 (2) 对于类来说,相关联的监视器保护类...

2017-02-16 18:14:31

阅读数 193

评论数 0

对象创建、内存布局和访问定位

对象创建在语言层面上,创建对象通常仅是一个new关键字而已,而在虚拟机中,对象的创建又是怎样一个过程呢? 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用。如果没有,则先执行相应的类加载过程。 为新生对象分配内存,对象所需内存的大小在类加载完成后便可完全...

2017-02-12 20:10:06

阅读数 147

评论数 0

Java虚拟机运行时数据区

Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些数据区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域: 这些运行时数据区域的访问属...

2017-02-12 17:57:28

阅读数 119

评论数 0

垃圾收集器

如果说收集算法是内存回收的方法论,那么垃圾回收器就是内存回收的具体实现。 不同厂商、不同版本的虚拟机所提供的垃圾收集器可能有很大差别,并且一般会根据应用特点和要求组合出各个年代所使用的收集器。 HotSpot虚拟机包含的收集器如下图: 各个垃圾回收器的回收算法、组合方式、应用场景如下图: ...

2017-02-10 16:44:33

阅读数 105

评论数 0

HashMap

HashMap继承于AbstractMap,实现了Map接口,同时标记了Cloneable和Serializable接口。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<...

2017-02-05 16:11:16

阅读数 209

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭