JVM 内存区域(JAVA运行时数据区)_lixiaoyi...的博客-程序员资料

技术标签: JVM  jvm  java  内存泄漏  

根据《java虚拟机规范》,java虚拟机所管理的内存区域如下图所示:

7536CC9632A142558BDEE55B40F28193D

线程共享的内存区域,存储的是对象的实例。

从回收内存的角度看,由于大部分的垃圾回收器都是基于分代回收理论进行垃圾回收的,所以可以将其分为新生代,老年代等。但现在hotspot里面也出现了很多不采用分代回收的新垃圾回收器,所以上述划分仅针对经典的基于分代回收的垃圾回收器

从分配内存的角度看,所有线程共享的对可划分为多个线程私有的分配缓冲区,用来提升对象分配是的效率

  • 方法区

线程共享的内存区域,用于存储已被虚拟机加载的类型信息、常量、静态变量、及时编译器编译后的代码缓存等数据。永久代和元空间都是hotspot虚拟机中对方法区的一个实现,在jdk1.8就用元空间取代了永久代,彻底废弃了永久代。

  • 程序计数器

线程私有的,记录了当前线程执行到了哪一步,如正在执行的是一个java方法,则记录的是正在执行的虚拟机字节码指令的地址

为什么需要?需要在线程的切换后恢复到正确的执行位置;程序控制流如分支,循环,跳转,异常处理,线程恢复都需要依赖于这个程序计数器来完成

  • 虚拟机栈

线程私有的,生命周期与线程相同,当调用一个方法时,java虚拟机就会创建一个栈帧,这个栈帧中包含着局部变量表,操作数栈,动态连接,方法出口等信息。从一个方法的被调用到执行完毕的过程就对应着栈帧在虚拟机中从入栈到出栈的过程。

  • 本地方法栈

线程私有的,与虚拟机栈类似,只不过他是为执行本地方法(native)提供服务的。《java虚拟机规范》并没有规定其实现方式,hotspot虚拟机直接将本地方法栈与虚拟机栈合二为一

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34508504/article/details/108288642

智能推荐

Java实战之图书管理系统(swing版)(9)——其他界面及功能实现_二木成林的博客-程序员资料

本节概要本节主要实现最后的关于软件的功能和一些本项目的总结。关于软件的功能关于软件的功能即是弹出一个对话框,告诉用户一些关于该软件的信息,使用swing的JDialog完成。在AboutSoftDialog.java中的具体代码如下:package bookManageSystem.view;​import bookManageSystem.tools.Compon...

FET场效应晶体管扫盲_fet工作原理_码农u号的博客-程序员资料

一、什么是FETFET是Field Effect Transistor的缩写,称为场效应晶体管。它是晶体管的一种。通常所说的晶体管是指双极晶体管。场效应晶体管的工作方式是沟道中的多数载流子在电场作用下由源极向漏极作漂移运动,形成了漏极电流。只涉及到一种载流子的漂移作用,所以也叫单极性晶体管。FET有三个电极分别是栅极( Gate )、源极( Source )和漏极( Drain ...

adb logcat 命令行用法_爪哇武功盖世的博客-程序员资料

1. 解析 adb logcat 的帮助信息在命令行中输入 adb logcat --help 命令, 就可以显示该命令的帮助信息;[plain] view [email protected]:~$ adb logcat --help  Usage: logcat [options] [filterspe

微信小程序 --- 页面导航_micoria的博客-程序员资料

页面导航页面导航有两种方式声明式导航编程式导航一、声明式导航语法:<navigator url="" open-type=""> 这是声明式导航</navigator>此时想要进行页面的跳转,在navigator标签中,使用url属性(必须以‘/’开头)的同时,必须搭配使用 open-type 属性去实现导航到tab页面导航到非tab页面导航到上一页面open-type:switchTabopen-type:navigate (默认值,可以

一个很猛的mm被甩之后(zz) _gsong的博客-程序员资料

song:有点扯,但挺搞笑:) 故事从一个星期天开始     和男朋友一起有4年的,大学的时候就在一起,刚开始的时候也是浪漫非凡,玩遍了所 有男生女人所谓的小资和情调,大学毕业走上社会,工作开始忙起来了,生活也渐渐 走向平淡      我们几乎已经是快谈婚论嫁的时候了,妈妈给我出钱付了首付,装修也一手 操办,基本上,就在等着选个好日子,把自己嫁了,日子真是美好        男朋友,小撒,

NYOJ-17-单调递增最长子序列_f_zyj的博客-程序员资料

描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0 < n < 20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7水题喽……#include

随便推点

JVM内存占用情况深入分析,分分钟解开你的疑惑_jvm_memory_direct_count_zl1zl2zl3的博客-程序员资料

很多同学都问过这个问题,为什么我的Xmx设置4g,但是TOP命令查询RES却占用5G,6G,甚至10G。这个正常吗?也可以说正常,也可以说不正常,怎么判断?笔者今天就要为你解答这个问题,叫你如何分析JVM占用的内存都分配到了哪里,哪些地方合理,哪些地方异常。内存分布首先,列举一下一个JVM进程主要占用内存的一些地方:Young Old metaspace java threa...

B-spline Curves 学习之B样条曲线定义(4)_xueluowutong的博客-程序员资料

B-spline Curves: Definition  给定n+ 1个控制点P0,P1, ...,Pn和一个节点向量U= {u0,u1, ...,um},p次B-样条曲线由这些控制点和节点向量U定义    其中Ni,p(u)是p次B-样条基函数。  B-样条曲线形式与贝塞尔曲线相似 。不像贝塞尔曲线,B-样条...

Linux /etc/sysconfig/iptables配置文件_折腾原理,日渐秃顶的博客-程序员资料

# Generated by iptables-save v1.4.21 on Thu Jan 21 19:43:06 2021*nat:PREROUTING ACCEPT [0:0]:INPUT ACCEPT [0:0]:OUTPUT ACCEPT [8:534]:POSTROUTING ACCEPT [8:534]:DOCKER - [0:0]-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER-A OUTPUT ! -d 127.0.

Rasa课程、Rasa培训、Rasa面试系列之:Rasa 3.x部署安装初体验-程序员资料

Rasa课程、Rasa培训、Rasa面试系列之:Rasa 3.x部署安装初体验Rasa 3.x部署安装进入Ananconda系统,新建rasa虚拟环境conda create --name installingrasa python==3.8.8激活rasa虚拟环境conda activate installingrasa安装ujson安装tensforflowconda install tensorflow安装

LVS-DR模式搭建高可用Web集群(实现keepalived双机热备)_weixin_33692284的博客-程序员资料

今天以DR模式的LVS群集为基础,增加了一台从负载调度器,使用keepalived来实现主、备调度服务器的热备,从而构架具有负载均衡、高可用两种能力的LVS网站群集平台。网站拓扑架构图系统环境主机操作系统IP地址DR1主调度服务器:CentOS 7.0 x86_64192.168.100.25DR2备调度服务器:CentOS 7.0 x86_64192.1...

面试官:换人!他连 TCP 这几个参数都不懂_程序员资源社区的博客-程序员资料

每日一句英语学习,每天进步一点点:前言TCP 性能的提升不仅考察 TCP 的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。TCP 协议是由操作系统实现,所以操作系统提供了不少...

推荐文章

热门文章

相关标签