zoukankan      html  css  js  c++  java
  • JVM知识

    JVM是Java的核心。尽管对于普通开发人员这块寻常可能不太关注。可是假设一些基本原理不理解,有的时候发生一些疑难异常就会让我们摸不到头脑,无法解决这样的意想不到的问题。JVM是通过指令系统、寄存器、栈结构、存储区域和垃圾回收来运行我们的程序。大家能够通过以下的JVM架构图更直观的理解。


    Class Loader:JVM通过模块将Class文件载入到JVM内存中。

    Execution Engine:运行引擎也叫解释器,负责解释命令。提交OS运行。

    JNI:Java Native Interface直接操纵机器硬件,如Java程序驱动打印机。

    Stack:栈是在线程创建时创建,线程结束栈内存也释放。不存在GC问题。栈内存存储局部变量、程序执行状态、方法返回值等数据。

    栈中的数据以栈帧存在。栈帧是一个内存区块。是有关方法和执行期数据的数据集。当一个方法fun1被调用就产生一个栈帧Frame1,压入栈中,fun1方法又调用fun2方法,产生栈帧Frame2压入栈。

    Heap:各条线程共享的执行时内存区域。全部类实例和数组对象分配内存的区域,由GC管理。堆能够划分为新生区、养老区和永久区。例如以下图。


    新生代:类在这里产生和应用,最后被垃圾回收。

    全部的类在伊甸区被new出来。当伊甸区满了,GC不会对该区不用的对象销毁,剩余实用的转到幸存区。

    老年代:用于存放生成周期比較长的对象。

    永久代:存放JDK自带的class,interface。


  • 相关阅读:
    System.Collections.Generic.KeyValuePair.cs
    物理-三菱镜-三菱镜效应:三菱镜效应 百科
    物理-光学仪器-三菱镜:三菱镜 百科
    公司-IT-Mercari:Mercari 百科
    公司-IT-SanSan:SanSan
    汉语-词汇:资源
    Inside GDALAllRegister之三: 注册指定驱动
    android-文字的处理-随心
    source insight中{}自动缩进的调整
    IOS效率提升工具
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7132344.html
Copyright © 2011-2022 走看看