• 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。


  • 相关阅读:
    java的一些基本概念──JDK 、j2se 、j2sdk...
    shell函数的调用执行
    ICE第三方包简介及安装&ICE安装(linux)
    http状态码
    Grep命令学习笔记(转)
    STL map用法详解
    ubuntu下安装subversion客户端
    linux下安装Tomcat及设置JSP环境
    ICE总结
    struts开发
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7132344.html
Copyright © 2020-2023  润新知