1,内存有两个主要的区域,栈空间和堆空间
栈(stack)
主要存储对象的引用,方法的调用,基本数据类型
方法的调用会压栈,栈空间的数据类型进出是试管类型的,先进后出
堆(heap)
主要存储对象
2,如何制造内存泄漏
栈
死递归,自己调用自己
public class Test2 {
static int count;
public void dg() {
count++;
System.out.println(count);
dg();
}
public static void main(String[] args) {
Test2 t = new Test2();
t.dg();
}
}
Exception in thread "main" java.lang.StackOverflowError
堆
声明一个超过自己内存大小的数组
public class Test2 {
public static void main(String[] args) {
int[] i = new int[1000000000];
}
}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
1,内存有两个主要的区域,栈空间和堆空间
栈(stack)
主要存储对象的引用,方法的调用,基本数据类型
方法的调用会压栈,栈空间的数据类型进出是试管类型的,先进后出
堆(heap)
主要存储对象
2,如何制造内存泄漏
栈
死递归,自己调用自己
public class Test2 {
static int count;
public void dg() {
count++;
System.out.println(count);
dg();
}
public static void main(String[] args) {
Test2 t = new Test2();
t.dg();
}
}
Exception in thread "main" java.lang.StackOverflowError
堆
声明一个超过自己内存大小的数组
public class Test2 {
public static void main(String[] args) {
int[] i = new int[1000000000];
}
}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space