java虚拟机 内存概念

一.运行时数据区:方法区,堆,java栈,PC寄存器,本地方法栈;


java栈:常用于存放对象引用和基本数据类型,而不用于存储对象;

1.一个线程一个java栈,每当线程调用一个java方法时,虚拟机都会在该线程的java

栈中压入一个新帧,而这个帧自然是当前帧。在执行这个方法时,它使用这个帧

来存储参数,局部变量,中间运算结果等等。(一旦方法运行结束,就会出栈,这些数据就都会被 回收)





  堆:     java 程序在运行时创建的所有类实例或数组都放在同一个堆中;java虚拟机实例只存在于一个堆空间中,因此所有线程都 共享一个堆;

 



方法区:1.类型信息,类数据都放在方法区;

2.该类型中的类(静态)变量同样也是存储在方法区;因为静态变量属于类,

      总是作为类型信息的一部分存在于方法区;

3.线程都共享方法区;

4.方法区存在于堆中,可自由分配;(java虚拟机规范把方法区描述为堆的一个逻辑部分)

5.常量池存在于方法区;

6.编译时常量 (那些用final声明以及用编译时已知的值 初始化的类变量)的类型都 会复制它的所有常量到常量池;

编译时常量 :final static 变量名;




类型信息:





本地栈:调用本地方法。

******************************************************************************************************
2.虚拟机装载class文件,从class文件解析类型信息,类型信息放到
方法区。当程序运行时,虚拟机会把所有该程序在运行时,创建的对象
都放到堆中。
3.新线程创建时,它都会得到它自己的PC寄存器以及一个java栈;
4.returnaddress 内部基本类型,我们不能调用,用来实现java程序中的finally
子句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值