JVM学习笔记(2)—— 运行时数据区概述及线程
创始人
2024-03-09 00:51:39
0

在上一篇中我们讲了JVM的类加载子系统,现在我们就来到了运行时数据区。而不同版本的JVM对于内存的划分方式和管理机制存在着部分差异(最典型的就是方法区实现的差异),本文针对经典的Hotspot jvm进行讨论,对运行时数据区做一个总体的概述

在这里插入图片描述
一个JVM进程中只有一个Runtime实例,即运行时环境,就相当于运行时数据区。其中
方法区:是线程共享的区域,整个运行时数据区中只有一份。垃圾回收主要针对的区域就是堆空间,其次是方法区
程序计数器、本地方法栈和虚拟机栈:是每个线程都有一份,是各个线程私有的,
在这里插入图片描述

一、JVM内存模型

方法区:存储类信息。
:存储所有对象的区域,是垃圾回收的主要工作区域。

直接内存:非jvm内存的堆外内存,NIO操作时会用到
在这里插入图片描述
程序计数器:存储线程中要执行的下一条指令的地址,如果下一条是本机方法,则pc寄存器中的值将未定义。jvm中唯一不会产生内存溢出的地方。
Java虚拟机栈:当Java中方法执行时,会形成一个栈帧压入栈中,栈帧中包括局部变量表、操作数栈和方法出口等,方法执行完毕则弹出栈。
本地方法栈:和Java虚拟机栈相似,这是调用本地Native方法形成的栈。
在这里插入图片描述

二、JVM中的线程

  • 在Hotspot JVM中,每个线程与操作系统中的线程直接映射。当一个Java线程准备好执行后,此时操作系统的一个本地线程也同时创建。Java线程执行终止后,本地线程也会回收。
  • 操作系统负责将所有线程安排调度到一个可用的CPU上。一旦本地线程初始化成功,它就会调用Java线程的run方法。
  • JVM中的线程分为守护线程和普通线程,当程序中最后一个非守护线程终止后,JVM也会进行终止

JVM的系统线程主要分为以下几种,其中GC线程就是典型的守护线程
在这里插入图片描述

后文将再对JVM内存中的五个区域进行详述

相关内容

热门资讯

原创 监... 12月19日上午,阳江市生态环境局举办新闻通气会解读《生态环境监测条例》,《条例》通过统一标准、明确...
美股异动丨拼多多大涨近7%,宣... 拼多多(PDD.US)盘初涨近7%报113美元。公司在年度股东大会上宣布实行联席董事长制度,任命赵佳...
柔性调解+司法建议,潮安文祠法... 商铺“上下楼”因招牌、外机起纠纷,如何化解才能既息事宁人,又杜绝同类问题重演?近日,潮州市潮安区文祠...
涉案超600万元!南京市知识产... 近日,南京市知识产权保护中心受南京仲裁委员会委托,成功调解一起大额跨境电商知识产权纠纷,以“人民调解...
拼多多开启联席董事长制度!Te... 12月19日,拼多多集团在年度股东大会上宣布升级公司治理架构,实行联席董事长制度。 经董事会批准,赵...
效率翻倍! “重庆调解在线”数... 12月19日,重庆市人大监察司法委、市政协社法委和市司法局举办2025年“联合开放日”暨调研活动。 ...
闻泰科技将审议关联交易议案 增... 闻泰科技(600745)12月19日晚间披露2025年第五次临时股东会会议材料,将审议2026年度日...
《辽宁省反家庭暴力条例》出台 ... 中新网沈阳12月19日电 (韩宏 李晛)记者19日从辽宁省政府新闻办召开的发布会上获悉,《辽宁省反家...
广州车展岚图赠送“泰山石”?监... 闲鱼现“车展泰山石”交易,卖家称“品牌方说是泰山石” 在闲鱼搜索“岚图车展”,可以看到多个名为“岚图...
《生态环境监测条例》自明年1月... 《生态环境监测条例》自明年1月1日起施行