
JVM
文章平均质量分 85
JVM
扬奇
道阻且长,行则将至!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM (三)--内存模型、变量可见性、指令重排、内存屏障
Java内存模型 Java内存模型(JMM):Java定义的一中抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让Java程序在不同平台下都能达到一致的内存访问效果。 Java内存图示: 1、主内存:线程共享内存,线程读写访问较慢; 包括方法区和Java堆,对于一个共享变量(比如静态变量,堆内存中的实例),主内存存有其“本尊”。 2、工作内存:线程私有的内存,线程访问较快。 对...原创 2018-08-28 22:37:03 · 1133 阅读 · 0 评论 -
JVM (一)--运行整体流程
面试:面试被问到JVM,竟然对JVM这几个字母没反应过来,后面也就答了JVM的内存管理和GC算法,答得模棱两可。 写给自己:JVM一直都是Java中很重要基础知识,是面试中必问的知识点。如果连JVM都弄不清楚,还谈什么Java开发。 运行流程 Java语言宣称:一次编译,到处运行 实现如下: 1)Java程序经过一次编译后,将Java代码编译为字节码文件(.class文件); 2)...原创 2018-08-27 14:09:41 · 1205 阅读 · 0 评论 -
JVM (二)--Java程序编译、类加载及执行
Java程序的编译 Java程序的编译是由Java源码编译器来完成,流程图如下: Java程序的执行 Java程序的编译是由Java执行引擎来完成,流程图如下: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 一、Java源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入...原创 2018-08-29 11:38:50 · 409 阅读 · 0 评论 -
JVM (四)--垃圾回收(一)
程序计数器、虚拟机栈、本地方法栈这三个区域属于线程私有,只存在于线程的生命周期内,线程结束之后也会消失,因此,不需要对这三个区域进行垃圾回收。垃圾回收主要针对方法区和Java堆进行。 一、判断一个对象是否存活 1、引用计数算法 给对象添加一个引用计数器,当对象增加一个引用时计数器加1,引用失效时计数器减1。引用计数器不为0的对象仍然存活。 两个对象出项循环引用的时候,此时引用计数器永远不为...原创 2018-08-29 17:20:02 · 325 阅读 · 0 评论 -
JVM (四)--垃圾收集(二)
一、垃圾收集算法 1、标记-清除 将存活的对象进行标记,然后清除掉未被标记的对象。 不足: 标记和清除过程中效率多不高; 会产生大量不连续的内存碎片,导致无法给大对象分配内存。 2、标记-整理 让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。 3、复制 将内存划分为大小相等的两块,每次只使用一块,当这一块内存用完就将还存活的对象复制到另外一块上面,然后再...原创 2018-08-30 11:05:14 · 262 阅读 · 0 评论