当前位置: 首页 > news >正文

JVM工作的总体机制概述

JDK、JRE、JVM关系回顾

  • JVM:Java Virtual Machine,翻译过来是Java虚拟机
  • JRE:Java Runtime Environment,翻译过来是Java运行时环境
    • JRE=JVM+Java程序运行时所需要的类库
  • JDK:Java Development Kits,翻译过来是Java开发工具包
    • JDK=JRE+Java开发辅助工具

images

Java源程序编译运行过程

Java源程序→编译→字节码文件→放到JVM上运行

JVM工作的总体机制

总体机制的粗略描述:

  • 第一步:使用类加载器子系统将 *.class 字节码文件加载到 JVM 的内存
  • 第二步:在 JVM 的内存空间存储相关数据
  • 第三步:在执行引擎中将 *.class 字节码文件翻译成 CPU 能够执行的指令
  • 第四步:将指令发送给CPU执行

images

JVM落地产品

  • Sun公司的HotSpot
  • BEA公司的JRockit
  • IBM公司的J9 VM

JVM 底层常见的面试题

  •     说一下JVM的主要组成部分?及其作用?
  •     说一下JVM运行时数据区?
  •     队列和栈是什么?有什么区别?
  •     什么是双亲委派模型?
  •     说一下类装载的执行过程?
  •     怎么判断对象是否可以被回收?
  •     Java 中都有哪些引用类型?
  •     说一下JVM有哪些垃圾回收算法?
  •     说一下JVM有哪些垃圾回收器?
  •     详细介绍一下CMS垃圾回收器?
  •     新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
  •     简述分代垃圾回收器是怎么工作的?
  •     说一下JVM调优的工具?
  •     常用的JVM调优的参数都有哪些?
  •     怎么获取Java程序使用的内存?堆使用的百分比?
  •     Java 中堆和栈有什么区别?
  •     你能保证GC执行吗?

 这些面试题等学完这一专栏都能游刃而解。

http://www.lryc.cn/news/118529.html

相关文章:

  • jmeter工具测试和压测websocket协议【杭州多测师_王sir】
  • 国产漏洞扫描器Xray入门,详细教程
  • LeetCode209. 长度最小的子数组
  • css冒号对齐
  • 那些年的golang开发经验记录
  • element中select下拉框如何实现宽度自适应
  • springboot项目get请求下划线转驼峰@JsonProperty注解失效问题
  • 架构训练营学习笔记:6-2 微服务基础选型
  • opencv实战项目 实现手势跟踪并返回位置信息(封装调用)
  • ElementUI动态添加表单项
  • Myatis和MybatisPlus常见分页方式
  • 利用ChatGPT绘制思维导图——以新能源汽车竞品分析报告为例
  • redis集群搭建(非常详细,适合新手)
  • CTFshow web93-104关
  • ElasticSearch详细操作
  • 【OpenVINOSharp】 基于C#和OpenVINO2023.0部署Yolov8全系列模型
  • 121. 买卖股票的最佳时机
  • FDO(Feedback-Driven Optimization) LTO(Link-Time Optimization)
  • 低成本无刷高速吹风机单片机方案
  • 使用Python爬取某查查APP端(Appium自动化篇)
  • vue3实现组件可拖拽 vuedraggable
  • gradio常用组件
  • vcode开发go
  • 聊城大学823软件工程考研
  • Spring Initailizr--快速入门--SpringBoot的选择
  • 大数据课程I1——Kafka的概述
  • 视图簇 se54 sm34 se54
  • 风丘科技将亮相 EVM ASIA 2023
  • 腾讯云服务器S6、SA3、S5、SA2等CVM实例介绍
  • 使用kickstart和anaconda自动化安装centos系统