美文网首页
java虚拟机截图

java虚拟机截图

作者: 书虫大王X | 来源:发表于2021-07-28 20:19 被阅读0次
    1 image.png image.png jvm结构简图 image.png image.png image.png
    image.png
    类加载器:
    image.png image.png image.png image.png image.png image.png image.png image.png
    类加载器的分类:
    image.png image.png
    • 系统的核心类库都是使用引导类加载器加载的(用c语言编写,其他的加载器用java实现)
    • 对于用户自定义类来说:默认使用系统类加载器进行加载
    image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png
    运行时数据区:
    image.png
    • 运行时数据区的堆和方法区是一个进程内的线程共用的(当有多个线程想创建同一个对象时,只用创建一个就行了,各个线程共用一个对象),但是每个线程的程序计数器、本地方法栈和虚拟机栈是每个线程独有的
    • 方法区存放类的信息
    • 垃圾回收一般针对的是堆区
    • 线程可以分为守护线程和普通线程
    程序计数器:
    • 程序计数器作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。
    • 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。
    • 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址;或者,如果是在执行native方法,则是未指定值(undefned) 。
    image.png
    虚拟机栈:
    • 一个线程对应一个java虚拟机栈,它的生命周期与该线程相同
    • 栈中的每一个栈帧对应一个方法
    • 作用:主管Java程序的运行,它保存方法的局部变量(基本数据类型、引用对象类型)、部分结果,并参与方法的调用和返回。
    image.png image.png image.png
    • 递归调用的代码执行要结合线程来理解

    • 在程序执行遇到异常时,当没有处理时(try..catch..),程序会在异常处直接退出,下面的代码不会执行

    • 方法的结束方式有两种:一、正常结束,以return为代表;二、异常结束,方法执行过程中遇到异常,且未对该异常进行处理

    image.png image.png
    image.png
    image.png
    image.png
    • 不管是栈或是队列还是其他数据结构,其底层都是用数组或是链表加以约束实现的


      image.png
      image.png
      image.png
    image.png image.png image.png image.png

    相关文章

      网友评论

          本文标题:java虚拟机截图

          本文链接:https://www.haomeiwen.com/subject/btacgktx.html