随笔分类 - Java
JVM系列之一:内存区域和内存溢出
摘要:1. 内存区域 如下图为JVM的运行时数据区,我们常说的堆指的Java堆、栈指的是虚拟机栈; 其中方法区和堆属于线程共享区;虚拟机栈、本地方法栈、PC属于线程独占区; 1.1 程序计数器 程序计数器是当前线程所执行字节码的行号指示器,记录字节码指令地址,来标识程序执行的顺序; 在多线程中,为了保证线
Java并发系列之一:底层原理
摘要:1. 前言 2. volatile 1. 在并发编程中,volatile和synchronized同等重要,它是轻量的synchronized,在多处理器开发中保证了共享变量的“可见性”,即线程A修改了共享变量,线程B能读到这个值 2. volatile使用得当的话,执行成本更低,因为它不会引起上下
Java 并发系列之七:java 阻塞队列(7个)
摘要:1. 前言 JDK5并发包concurrent加入了阻塞队列(BlockingQueue) 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法 ; 1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满; 2)支持阻
ArrayList源码分析
摘要:简介 ArrayList底层是数组实现的,可以自增扩容的数组,此外它是非线程安全的,一般多用于单线程环境下(Vector是线程安全的,所以ArrayList 性能相对Vector 会好些) ArrayList继承了AbstractList,实现了List接口 1. 实现了Serializable接口