Java面试之JVM复习(一)

JVM Java虚拟机,包含一套字节码指令集、寄存器、栈、垃圾回收、堆,存储方法域。JVM是运行在操作系统上的,与硬件没有直接的交互。Java源文件,通过编译器,能够生成相应的.Class文件,也就是字节码文件,而字节码文件又通过java虚拟机中的解释器,编译成特定机器上的机器码。每一种平台上的解释器是不同的,这也是java为什么能跨平台运行的原因了。

方式/步骤

  1. 1

    当一个程序从起头运行,这是虚拟机就起头实例化了,多个程序启动就会存在多个虚拟机实例。程序退出或者封闭,则虚拟机实例消亡,多个虚拟机之间的数据不克不及共享

  2. 2

    线程是指程序执行过程中一个线程实体。JVM许可一个应用并发执行多个线程。

    Hotspot JVM中的Java线程与原生操作系统线程有直接的映射关系。当线程当地存储、缓冲区分派、同步对象、栈、程序计较器等筹办好今后,就会建立一个操作系统原生线程。

    java线程竣事,原生线程随之被收受接管。操作系统负责调剂所有线程,并把它们分派到任何可用CPU上。当原生线程初始化完毕,就挪用java线程的run()方式。当线程竣事时,会释放原生线程和java线程的所有资本。

  3. 3

    JVM内存区域本家儿要分为线程私有区域:程序计数器、虚拟机栈、当地方式区。

    线程共享区域:java堆、方式区、直接内存。

  4. 4

    线程私稀有据区域生命周期与线程不异,依靠用户线程的启动/竣事,而建立/销毁(在Hotspot VM 内,每个线程都与操作系统的当地线程直接映射,是以这部门内存区域的存/否跟从当地线程的生/死对应的)。

    线程共享区域随虚拟机的启动/封闭而建立/销毁。

  5. 5

    程序计数器(线程私有)

  6. 6

    当地方式区(线程私有)

  • 发表于 2020-04-30 19:00
  • 阅读 ( 67 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论