【JVM】JVM前世今生和内存区域

字节码执行指令

https://cloud.tencent.com/developer/article/1333540

方法区存在的意义?

  • 存储后期长期使用的变量,如静态常量池、运行时常量池

Java程序的执行过程?

在这里插入图片描述

JDK和JRE和JVM的区别?

  • JVM只是一个翻译,根据不同操作系统,将Class翻译成对应机器码
  • JRE是Java运行时环境,提供基础类库,如操作文件、连接网络、I/O等等。
  • JDK是建立在JRE之上,提供编译代码(javac.exe)、打包代码(java)、反编译代码(javap)等工具

JVM的跨平台与语言无关性?

  • 跨平台: JVM因屏蔽了操作系统的差异,可以将字节码翻译成对应OS的机器码
  • 语言无关性: 除了Java,如Scale、Grovvy语言也拥有

JVM整体知识模块

在这里插入图片描述

Java运行时数据区域

在这里插入图片描述

Java方法的虚拟机栈

  • 存储当前线程运行Java方法所需的数据,指令,返回地址
  • 栈帧: 局部变量表+操作数栈+动态连接+方法返回地址+附加信息
  • 栈溢出: JDK5之前如果递归深度超过256K就会栈溢出,如果JDK5之后如果递归深度1M就会栈溢,代码递归无终止条件或者循环次数太多导致的
  • -Xss:设置虚拟栈的内存大小

程序计时器

  • 指向当前线程正在执行的字节码指令的地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值