Java虚拟机相关面试题

本文详细介绍了Java虚拟机(JVM)的结构,包括类加载过程、运行时数据区和执行引擎。JVM主要包括类加载过程、运行时数据区(如线程私有的程序计数器、本地方法栈、虚拟机栈和线程共享的堆、方法区)以及执行引擎。Java内存模型(JMM)保证了多线程环境下的数据一致性,确保原子性、有序性和可见性。垃圾回收机制(GC)则负责自动管理内存,有效地处理对象的生命周期。
摘要由CSDN通过智能技术生成

1、Java虚拟机模型(JVM)

1.1、简述一下Java虚拟机模型(JVM)。

JVM:Java Virtual Machine,Java虚拟机。
我们知道,Java是一个跨平台的语言,其中起主要作用的就是JVM,通俗地讲,JVM可以理解为一个翻译,把class文件翻译成机器码(010101),然后给Linux、Windows等操作系统使用。
JVM主要包括三个部分:类加载过程、运行时数据区和执行引擎。
class文件经过类加载过程被读入内存(运行时数据区),然后再交给执行引擎被翻译成机器码。
我们主要讲一个运行时数据区,从两个维度来讲:线程私有和线程共享。
线程私有:程序计数器、本地方法栈、虚拟机栈。
线程共享:堆、方法区。

线程私有:
程序计数器:
    定义:当前线程正在执行的字节码指令的行号指示器。
    为什么需要程序计数器:Java是多线程的,意味着会有线程切换,程序计数器可以保证多线程情况下程序能够正常执行。
    详细内容:一个java文件被编译成class文件,然后被反编译后,可以看到每行代码前面都有一个数字。这一系列不连续的数字就是程序计数器所记录的东西,
    可以简单理解为行号,之所以不连续,是因为每行代码的偏移量不同。
虚拟机栈:
    定义:存储当前线程运行方法所需的数据、指令和返回地址等。
    说明&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值