摘要: Java内存模型 一.Java内存模型基础 并发编程中的两个关键问题:线程之间如何通信及线程之间如何同步 线程之间的通信机制:共享内存和消息传递,JAVA采用的是共享内存模型。 JAVA内存模型的抽象结构: Java内存模型是围绕着并发编程中原子性、可见性、有序性这三个特征来建立的。 1. 原子性: 阅读全文
posted @ 2017-11-08 10:23 Free丶Will 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 三.线程间通信 通信机制分为两种:共享内存机制和消息通信机制。volatile 和synchronized 是共享内存机制的实现方式,同时也要考虑通信的及时性和开销问题,等待/通知机制则保证了通信双方“高效沟通”的一种方式。管道输入/输出流则是消息通信机制的实现方式。线程间的执行顺序是通过Threa 阅读全文
posted @ 2017-11-08 10:20 Free丶Will 阅读(145) 评论(0) 推荐(0) 编辑
摘要: Java源码分析_ArrayList 一.ArrayList概述 二.ArrayList的数据结构 ArrayList底层是使用一个Object类型的数组来存放数据的 三.ArrayList源码分析 关键属性 private transient Object[] elementData;//存放元素 阅读全文
posted @ 2017-10-23 13:47 Free丶Will 阅读(174) 评论(0) 推荐(0) 编辑
摘要: JAVA源码分析_HashMap 一.HashMap概述 HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺 阅读全文
posted @ 2017-10-23 11:25 Free丶Will 阅读(116) 评论(0) 推荐(0) 编辑
摘要: Java内存区域与内存溢出异常 虚拟机内存划分,可能造成内存溢出异常的代码和操作 —— 各区域的内容 1.内存中个区域存放什么数据 程序计数器: 虚拟机栈: 局部变量表:存放编译器可知的各种基本数据类型(boolean,byte,char,short,int,float,double,long),对 阅读全文
posted @ 2017-10-19 11:22 Free丶Will 阅读(100) 评论(0) 推荐(0) 编辑