浅谈java内存中的堆和栈
来源:互联网 发布:javascript 教程 pdf 编辑:程序博客网 时间:2024/05/17 23:35
1.栈,是一种向低地址扩展的数据结构,并且是连续的存储空间,所以栈顶和栈的最大容量是固定的,在windows下,栈的最大容量是2m或者是1m,是在编译的时候就已经确定的,当申请空间大于栈的剩余空间的时候,就会报错说明overflow,所以栈能够申请的空间是比较有限的。
堆,是一种向高地址扩展的数据结构,并且是不连续的,因为系统采用的是链表的方式存放空闲存储块,当然是不连续的,链表的遍历方向是由低向高的,所以堆能够申请的空间的大小其实等同于整个系统的虚拟内存,只要还有内存空间,那么堆就能够不受限制的申请空间,这种方式比较灵活,申请空间也较大
当然,我们也可以通过测量栈的深度来判断栈是否溢出,实例代码如下:
package com.huaxin.test;
import javax.swing.JButton;
public class Test {
public static void main(String[] args) {
// Test test = new Test();
//
// test.play();
/**
* java.lang.StackOverflowError 栈溢出
* 拓展:如何测出栈的深度???
*/
/**
* java.lang.OutOfMemoryError 堆溢出
*/
// int[] array = new int[Integer.MAX_VALUE];
while(true){
// JButton button = new JButton();
//线程 Thread 进程 Progress 程序Program
//创建线程 持续5秒
Thread t = new Thread(){
public void run(){//线程工作的方法
try {
Thread.sleep(5000);//休眠5秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
//启动
t.start();
}
}
//死递归
public void play(){
play();
}
}
- 浅谈java内存中的堆和栈
- 浅谈java中的堆内存和栈内存
- 浅谈Java 中的堆和栈
- 浅谈Java中的栈和堆
- Java中的栈内存和堆内存
- JAVA中的栈内存和堆内存
- java中的栈内存和堆内存
- Java中的堆内存和栈内存
- java中的栈内存和堆内存
- Java中的栈内存和堆内存
- java中的栈内存和堆内存
- Java中的堆内存和栈内存
- JAVA中的堆内存和栈内存
- java中的内存分配 堆和栈
- JAVA虚拟机中的内存:栈和堆
- java内存中的栈和堆
- 浅谈Java堆和栈
- 如何理解java中的堆内存和栈内存
- Objective-C学习笔记(二十二)——初始化方法init的重写与自定义
- uva 10803 Thunder Mountain (floyd)
- 图像处理------基于像素的图像混合
- EventBus组件间通讯利器【入门篇】
- hammer.js实现背景图手势缩放调整位置
- 浅谈java内存中的堆和栈
- HYAppFrame(WinForm框架源码)安装部署指南
- JAVA的类名与文件名必须一致
- myeclipse 自动补全 代码
- 泛型
- 图像处理------添加高斯与泊松噪声
- hdu 5301 Buildings 2015 Buildings Multi-University Training Contest 2
- java类的初始化和构造函数
- VMware 中 Ubuntu 不能全屏