zoukankan      html  css  js  c++  java
  • java虚拟机

    一、jdkjrejvm的关系

           

      jdk、jre、jvm之间的关系:https://blog.csdn.net/weixin_43878966/article/details/102574048

      jre = jvm+类库

    二、JVM内存区域

           

      虚拟机栈:在JVM运行过程中存储当前线程运行方法所需的数据、指令、返回地址。缺省大小为1M,参数-Xss。在java方法被调用的时候,会创建一个栈帧,进行入栈和出栈,栈帧包括:局部变量表、操作数栈、动态连接、返回地址。

      程序计数器:当前线程执行的字节码行号指示器,如果遇到本地方法(native方法),就不需要记录了,是一块很小的内存空间,也是JVM中唯一不会OOM的内存区域。

      本地方法栈:本地方法栈用于管理本地方法的调用,服务对象是native方法。

      方法区:JDK1.7称为永久代,JDK1.8及以后使用元空间来实现方法区,它存储了每一个类的结构信息,如运行时常量池(是每一个类或接口的常量池的运行时表示形式),字段和方法数据,构造函数和普通方法的字节码内容,还包括一些类、实例、接口初始化时用到的特殊方法。

      堆:堆是JVM上最大的内存区域,存储java对象,而对象的引用存在虚拟机栈的局部变量表中,在方法体内声明了对象并且不会逃逸出方法,它就会在栈上分配,其他情况在堆上分配,参数-Xms。

      直接内存:也叫堆外内存,操作系统分配JVM内存之后剩余的内存就是堆外内存,不是虚拟机运行时数据区的一部分,也不是java虚拟机规范中定义的内存区域,在java堆内可以用directByteBuffer 对象直接引用并操作,参数-XX:MaxDirectMemorySize。

    ==================================================================================================

      JVM参数官方文档(JDK1.8):https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

      jdk1.7hashmap死循环:https://blog.csdn.net/maohoo/article/details/81531925

  • 相关阅读:
    台式机安装无线网卡建立共享操作
    Mean shift
    拉格朗日乘子法
    凸集和凸函数
    图像插值法
    高斯平滑
    gamma校正
    SIFT feature
    VS2013+Win10+opencv3.0配置(包括opencv2.4.10版本)
    caffe添加自己编写的Python层
  • 原文地址:https://www.cnblogs.com/cxli99/p/14061712.html
Copyright © 2011-2022 走看看