欢迎光临
我们一直在努力

JVM学习

定义:

JAVA Virtual Machine程序的运行环境(java二进制字节码的运行环境)。

好处:

  • 一次编写,到处运行
  • 自动内存管理,垃圾回收功能
  • 数组下标越界,越界检查,抛异常
  • 多态
  • 比较:
    jvm,jdk,jre
     

    常见的jvm:

    jvm是一种规范

    内存结构:

     

  • 程序计数器(寄存器)
  • 虚拟机栈
  • 本地方法栈
  • 堆
  • 方法区
  • 程序计数器(寄存器):

    JAVA源代码→jvm指令,二进制字节码→解释器→机器码→CPU

    作用:

    在一系列指令中,记住下一个jvm指令的执行地址。
    寄存器是整个CPU中读写最快的部件。

    特点:

    1.线程私有;

    2.不会存在内存溢出。

    虚拟机栈:

    定义:

    栈-线程运行需要的内存空间。
    栈帧-每个方法运行时需要的内存。
     

  • 垃圾回收不涉及栈内存。栈内存由线程自动管理(方法调用入栈、执行完出栈),垃圾回收仅针对堆内存中不再被引用的对象。
  • 栈内存不是分配越大越好。栈过大会减少进程可创建的线程数,且超出物理内存会触发页交换,反而降低性能。
  • 方法内局部变量是线程安全的。局部变量存储在栈帧中,每个线程有独立栈,不存在多线程共享的情况。
  • hotspot

    栈内存溢出:

    线程运行诊断:

     

    本地方法栈

     

    堆:

    方法区:

    定义

    组成

    方法区内存溢出

    运行时常量池

     

     

    赞(0)
    未经允许不得转载:171主机测评 » JVM学习
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址