欢迎来到天天文库
浏览记录
ID:52315635
大小:20.50 KB
页数:1页
时间:2020-03-26
《Java中的栈内存和堆内存.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java中的栈内存和堆内存[导读]引用变量是普通变量,定义时所在栈中分配内存,引用变量在程序运行到作用域外释放。而数组和对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象本身占用的堆内存也不会被释放。 1.寄存器:最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制. 2.栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new出来的对象)或者常量池中(字符串常量对象存放在常量池中。) 3.堆:存放所有new出来的对
2、象。 4.静态域:存放静态成员(static定义的) 5.常量池:存放字符串常量和基本类型常量(publicstaticfinal)。 6.非RAM存储:硬盘等永久存储空间 引用变量是普通变量,定义时所在栈中分配内存,引用变量在程序运行到作用域外释放。而数组和对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象本身占用的堆内存也不会被释放。数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回
3、收器释放掉。这个也是java比较占内存的主要原因。
此文档下载收益归作者所有