jvm
文章平均质量分 90
学之以恒_大道至简
专注后端技术
展开
-
Java虚拟机内存模型
1. 概述 在说Java虚拟机内存模型之前,先了解一下物理计算机中的并发问题,物理机遇到的并发问题与虚拟机中的情况有不少相似之处,物理机对并发的处理方案对于虚拟机的实现也有相当大的参考意义。 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将运算需要使...原创 2018-07-16 18:36:29 · 215 阅读 · 1 评论 -
解密Java虚拟机对象创建
* 本文讨论的对象限于普通Java对象,不包括数组和Class对象等一、对象的创建 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析、初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载检查通过后,虚拟机会为新生对象分配内存,对象所需内存的大小在类加载完成后便可完全确定。为对象...原创 2018-07-17 18:40:26 · 358 阅读 · 0 评论 -
Java虚拟机类加载机制
一、概述 虚拟机把描述类的数据从Class文件(Class文件中除了有类的描述信息外,还有常量池)加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。注:这里所说的“Class文件”应当是一串二进制的字节流。二、类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loadin...原创 2018-07-18 20:49:16 · 227 阅读 · 0 评论 -
详解Java虚拟机内存各个区域
1. 概述 对于java程序员来说,不必手动写代码去管理内存,因为虚拟机的自动内存管理机制会帮我们做,但是一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的话,那么排查错误将会变得困难。 2. 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁时间,有的随虚拟机启动而存...原创 2018-07-13 19:09:36 · 1541 阅读 · 0 评论 -
虚拟机字节码执行引擎
一、概述 执行引擎是Java虚拟机最核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,区别是:物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的。虚拟机的执行引擎是由自己实现的,因此可以自行定制指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 在Java虚拟机规范中指定了虚拟机字节码执行引擎的概念模...原创 2018-07-21 18:02:10 · 152 阅读 · 0 评论 -
Java虚拟机垃圾收集器
一、概述1.1 为什么要了解垃圾收集器 目前内存的动态分配与内存回收技术已经相当成熟,一起看起来都进入“自动化”时代,那为什么还要去了解GC和内存分配呢,答案很简单:当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要要对这些“自动化”技术实施必要的监控和调节。1.2 垃圾收集器主要关注哪部分内存 之前的文...原创 2018-07-23 10:07:36 · 373 阅读 · 0 评论