java工程师成神之路(2018)
东桥小草
这个作者很懒,什么都没留下…
展开
-
1.1JVM内存结构——堆、栈、方法区、直接内存、堆和栈区别
一、定义 1、堆:FIFO队列优先,先进先出。jvm只有一个堆区被所有线程所共享!堆存放在二级缓存中,调用对象的速度相对慢一些,生命周期由虚拟机的垃圾回收机制定。2、栈:FILO先进后出,暂存数据的地方。每个线程都包含一个栈区!栈存放在一级缓存中,存取速度较快,“栈是限定仅在表头进行插入和删除操作的线性表”。3、方法区:用来存放方法和static变量。二、存储的数据类型1、堆用来存储new出来的对...原创 2018-03-24 10:28:31 · 18051 阅读 · 3 评论 -
1.2Java内存模型——原子性、内存可见性、重排序、顺序一致性、volatile、锁、final
一、原子性原子性操作指相应的操作是单一不可分割的操作。例如,对int变量count执行count++d操作就不是原子性操作。因为count++实际上可以分解为3个操作:(1)读取变量count的当前值;(2)拿count的当前值和1做加法运算;(3)将加完后的值赋给count变量。在多线程环境中,非原子操作可能会受其他线程的干扰。比如,上述例子如果没有对相应的代码进行同步(Synchronizat...原创 2018-03-26 23:03:43 · 3681 阅读 · 3 评论 -
1.3垃圾回收——内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定
垃圾收集器与内存分配策略1 概述2 对象已死吗 2.1 引用计数算法 2.2 可达性算法 2.3 再谈引用 2.4 生存or死亡 2.5 回收方法区3 垃圾收集算法 3.1 标记-清除算法 3.2 复制算法 3.3 标记-整理算法 3.4 分代收集算法4 HotSpot算法 4.1 枚举根节点 4.2 安全点 4.3 安全区域...原创 2018-03-28 22:34:05 · 2031 阅读 · 0 评论