java-虚拟机
文章平均质量分 78
猕猴桃0303
CSDN新人,目标整理平时所学。讲出来才能收获
展开
-
JVM 程序计数器
程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。- - 摘自《深入理解Java虚拟机》特 点如果线程正在执行的是Java 方法,则这个计数器记录的是正在执行的虚拟机字节码指令地址如果正在原创 2018-01-02 17:13:10 · 17983 阅读 · 11 评论 -
JVM直接内存
概述直接内存并不是虚拟机运行时数据区的一部分,也不是Java 虚拟机规范中农定义的内存区域。在JDK1.4 中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O 方式,它可以使用native 函数库直接分配堆外内存,然后通脱一个存储在Java堆中的DirectByteBuffer 对象作为这块内存的引用进行操作。这样能在一些场景原创 2018-01-03 15:40:40 · 16600 阅读 · 3 评论 -
java 四种引用 强引用、软引用、弱引用、虚引用
在GC 判断对象是否可用时,无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,都与“引用”有关。在JDK 1.2 以前,Java 中的引用定义很传统:如果reference 类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。 在此我们先拓展一下引用,即对象的访问定位 建立对象是为了使用对象,我们的Java 程序需要通原创 2018-01-30 17:40:43 · 358 阅读 · 0 评论 -
java 内存区域
学习《深入理解Java 虚拟机》做些总结。并有参考其他博客的地方。如有不规范大家指出相互学习提高。我们知道java 虚拟机在执行java 程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间。有的区域随着虚拟机进程(方法区、堆)的启动而存在,有些区域则依赖线程的启动和结束而建立和销毁(程序计数器、虚拟机栈、本地方法栈),先看下运行是数据区如下图:原创 2018-01-15 16:03:02 · 277 阅读 · 0 评论 -
jvm GC 算法
因为看到一篇写的比较好的博客,就在此转载总结生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4744233.html本文主要内容:GC的概念GC算法 引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法:转载 2018-01-17 11:02:00 · 320 阅读 · 0 评论 -
虚拟机类加载-静态块顺序
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载 7个阶段。其中验证、准备、解析3个部分统称为连接。发生顺序如下:对于加载,java 虚拟机规范中没有进行强制约束,交给虚拟机的具体实现来自由把握。但对于初始化阶段,虚拟机规范则是严格规定了有且只有5种 情况必须立即进行“初始化”(而加载、验证、准备自然在此之前开始):原创 2018-01-17 17:42:44 · 307 阅读 · 0 评论