为了账号安全,请及时绑定邮箱和手机立即绑定

请教一下以下哪些内存区域是jvm运行时数据区?

/ 猿问

请教一下以下哪些内存区域是jvm运行时数据区?

JVM
牛魔王的故事 2019-11-10 13:09:08

以下哪些内存区域是jvm运行时数据区


查看完整描述

4 回答

?
慕雪6442864

jstat
可以观察到classloader,compiler,gc相关信息
-class:统计class loader行为信息
-compile:统计编译行为信息
-gc:统计jdk gc时heap信息
-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况
-gccause:统计gc的情况,(同-gcutil)和引起gc的事件
-gcnew:统计gc时,新生代的情况
-gcnewcapacity:统计gc时,新生代heap容量
-gcold:统计gc时,老年区的情况
-gcoldcapacity:统计gc时,老年区heap容量
-gcpermcapacity:统计gc时,permanent区heap容量
-gcutil:统计gc时,heap情况

查看完整回答
反对 回复 2019-11-16
?
Qyouu

java中在内存中划分:栈内存和堆内存。
1、栈内存:栈中是存放一些定义的变量的引用,比如:int a = 1; a那么就存在栈内存中,java中垃圾回收是JVM帮我们完成的,这里比C大大提高了程序员的繁碎。如果想要控制可以使用System.gc();来通知JVM虚拟机执行,但是什么时候执行还是由JVM虚拟机来完成的。
2、堆内存:堆中是存放一些比如数组,map类型等。

查看完整回答
反对 回复 2019-11-16
?
森栏

最主要有三个部分
ROM,栈和内存堆。
ROM存入的是用final修饰的变量,是不能改变的。
内存堆主要存的是对象。
栈中存入的是句柄或者说是指针。比如T t=new T();这个时候new出的对象是放在内存堆中的,而t这个指向对象的句柄是放在栈中的。
而溢出一般是发生在栈中。

查看完整回答
反对 回复 2019-11-16
?
ABOUTYOU

java类加载:就是把.class文件读进虚拟机内存,然后按照一定的结构存储起来,类加载器,就是加载的工具类。
java虚拟机把内存分成
程序计数器:存储程序运行指令的内存
方法区:存储java类结构的内存
常量池:存储java常量的内存
堆:就是存储new对象的内存
栈:就是保存方法内局部变量的内存
名字都是jvm中翻译过来的。有本书叫深入java虚拟机。这方面的知识讲得比较完全

查看完整回答
反对 回复 2019-11-16
  • 4 回答
  • 0 关注
  • 42 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信