Java入门级每日总结(2):JDK、JRE、JVM三者的关系

一、JDK、JRE、JVM的相关概念

JDK:Java开发工具包,包括了Java运行环境JRE(Java Runtime Envirnment)、一些Java工具(javac、java、jdb等)和Java基础的类库(即Java API 包括rt.jar)。

JRE:Java运行环境,使用Java开发的系统或者app要跑起来必须具备的环境,也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。

JVM:Java虚拟机,JVM是整个Java实现跨平台的最核心的部分,所有的Java程序会首先被编译 为.class的类文件,这种类文件可以在虚拟机上执行。即class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行

二、三者关系

1.JDK中包含了JRE,JRE又包含JVM

2.JVM中包括的五大块

1)线程共享区

方法区:存储已被JVM加载的类信息、常量、静态变量等数据。

堆:存储的是我们new来的对象,不存放基本类型和对象引用。

JVM 的调优主要就是围绕堆,栈两大块进行。

2)线程独占区

虚拟机栈:每个线程都会有一个虚拟机栈,多线程就会有多个虚拟机栈。虚拟机栈里面是一个一个的栈帧(Stack Frame),每一个栈帧都是在方法执行的同时创建的,描述的是Java方法执行的内存模型。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机里面从入栈到出栈的过程。

本地方法栈:服务的对象是JVM执行的native方法,其就是一个java调用非java代码的接口,作用是与操作系统和外部环境交互 如果某个虚拟机实现的本地方法接口是使用C连接模型的话,那么它的本地方法栈就是C栈

程序计数器:记录着当前线程所执行的字节码的行号指示器,用于存放下一条指令所在单元的地址的地方。当线程重新获得CPU的执行权的时候,就直接从记录的位置开始执行,分支、循环、跳转、异常处理也都依赖这个程序计数器来完成。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瘦皮猴117

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值