浅谈java的内存管理机制
来源:互联网 发布:淘宝店铺需要的软件 编辑:程序博客网 时间:2024/06/05 03:47
浅谈java的内存管理机制
内存管理(百度百科定义):是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
从上面的定义中我们可以知道,内存管理实际上就是两块内容:内存分配与内存回收。
在java的机制中,内存的回收是由java虚拟机来完成的,也就是讲作为java的开发人员,可以不用自己去手动的回收内存。其实是没有权限对内存进行内存回收管理。这样我们就把精力放在内存分配上。
java的内存分为:栈、堆、代码区和静态变量存储区 四个部分。
栈:
int i = 20 ; //<--->int i ; i = 20 ;
i = 30;
这两行代码的机制是:第一步,执行int i ; 即在栈中申请变量存储空间 i ,第二步,给申请的栈空间装入初值20,第三步,重新在栈中给变量赋值,为30
堆:
........
public class Text {
int a; //第一步
char b;
public Text ( int a1 , char b1 ){
a = a1;
b = b1;
}
public static void main (String[ ] args){
Text t = new Text(2, L); .//<---->Text t = new Text(); 第二步 , t(2, L); 第三步
}
.....
}
......
说明:第一步:在栈中给a、b分配内存空间;第二步在堆中给a1、b1分配内存空间;第三步,在堆中给a1 b1 赋值,即a= 2;b = L;
需要值得说明的是,在第三步的时候,与第二步中的内存空间可能不是同一块空间,即两块有一段很短暂时间的共存区。然后虚拟机发现有两个变量名相同的地址块,这时候就会自动的回收掉旧的空间快。这也是与栈不同的地方。
代码区:就是存放代码的区域,这个英爱比较好理解,就不赘述。
静态变量存储区:与动态变量存储区(包括栈和堆)相对应,是存放静态变量的。
总结:栈中一般存放局部变量、形参、引用类型;堆中一般存放new出来的对象。
- 浅谈java的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- 浅谈Linux的内存管理机制
- Java的内存管理机制
- java的内存管理机制
- java 的内存管理机制
- android XML转义字符 常用几个 网上找到
- 关于归并排序
- 自旋锁(Spinlock)加锁过程实现(arm平台)
- linux下解压命令大全
- Java中的instanceof关键字
- 浅谈java的内存管理机制
- Implementing Descendant Navigation 实现下一代导航
- U-boot支持jssf2分区的实现
- Optimizing Layouts for TV 优化TV布局
- sql脚本源码在vss中无法进行版本比对的解决方案
- Optimizing Navigation for TV 优化电视导航
- 分组背包基础--1712 ACboy needs your help
- javascript 修改对象
- 进程,进程组,会话等的关系