Java Virtual Machine One

jvm结构

        类加载子系统:类加载器 验证 准备 解析 

        数据运行时数据区 :1.方法区 类信息 方法信息 常量池  2.堆体系:线程共享区域 堆存放new的对象 3.栈 线程私有的 存放线程执行过程的方法信息(存储单位为栈帧) 4.程序计时器 执行线程的行号计时器 5.本地方法栈 native方法栈

        执行引擎:将二进制的指令解释给操作系统

虚拟栈: 存储每个线程的栈结构,线程私有 ,栈中存储的元素是栈帧

每个栈帧存储一个线程的方法信息,方法内部的局部变量表(形参,内部变量)方法地址,返回值信息 ,操作数栈,动态链接。

栈帧的结构:本地变量表, 方法地址:动态链接 参数 返回值

栈溢出:递归调用,方法调用太深,导致栈oom溢出

解决栈溢出:递归和方法调用需要控制深度,通过动态规划等其他算法来替代递归算法

调用栈的大小:-Xss2m

堆 

   堆结构

 堆线程是共享的,存放new出来的对象

新生代:年轻代  1.伊甸区 2.幸存者区0 from区 3.幸存者1 to区 

老年代:  养老区 old

   jvm常用参数

      -Xss1m: 设置栈的大小为1m

      -Xms500m:设置jvm初始堆大小

              -Xms和-Xmx设置的值一样  (避免出现程序运行期间动态申请内存)<

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值