- 1
- 0
- 约2.19千字
- 约 4页
- 2017-04-07 发布于重庆
- 举报
Java内存原型分析基本知识
Java内存原型分析:基本知识 java虚拟机内存原型 寄存器:我们在程序中无法控制 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 堆:存放用new产生的数据 静态域:存放在对象中用static定义的静态成员 常量池:存放常量 非RAM存储:硬盘等永久存储空间 Java内存分配中的栈 栈的基本单位是帧(或栈帧): 每当一个java线程运行的时候, java虚拟机会为该线程分配一个java栈。该线程在执行某个java方法的时候, 向java栈压入一个帧, 这个帧用于存储参数、局部变量、操作数、中间运算结果等。当这个方法执行完的时候, 帧会从栈中弹出。Java栈上的所有数据是私有的,其他线程都不能该线程的栈数据。 在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中 为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 Java内存分配中的堆 java虚拟机中的堆用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动的垃圾回收机制来管理堆的内存。 简单的说和栈相对,堆主要是用来存放java对象的,栈主要是用来存放对象引用的...在堆中产生了一个数组或对象后,还可以 在栈中定义一个特殊的变量,让
原创力文档

文档评论(0)