第一次遇到内存不够的问题.高兴.分享一下.
package com.xlh.factory;import java.util.ArrayList;
import java.util.List;public class MemoryDemoTest { public static void main(String args[]) {
//使用内存
//使用时间
long start_time = System.currentTimeMillis() ;
List<Person> list = new ArrayList<Person>() ;
long free1 = Runtime.getRuntime().freeMemory() ;
for (int i=0;i<10000000;i++) {
Person p = new Person() ;
list.add(p) ;
}
long end_time = System.currentTimeMillis() ;
System.out.println("使用的内存为=" + (Runtime.getRuntime().freeMemory()-free1)) ;
System.out.println("使用的时间为=" + (end_time - start_time)) ;
}
}class Person {
private String name ;
private String id ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
package com.xlh.factory;import java.util.ArrayList;
import java.util.List;public class MemoryDemoTest { public static void main(String args[]) {
//使用内存
//使用时间
long start_time = System.currentTimeMillis() ;
List<Person> list = new ArrayList<Person>() ;
long free1 = Runtime.getRuntime().freeMemory() ;
for (int i=0;i<10000000;i++) {
Person p = new Person() ;
list.add(p) ;
}
long end_time = System.currentTimeMillis() ;
System.out.println("使用的内存为=" + (Runtime.getRuntime().freeMemory()-free1)) ;
System.out.println("使用的时间为=" + (end_time - start_time)) ;
}
}class Person {
private String name ;
private String id ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Person p = new Person() ;
list.add(p) ;
} 你可以每天运行一下这段代码,就可以每天高兴一下了
for (int i=0;i<10000000;i++) {
p = new Person() ;
list.add(p) ;
}
当new Person 的时候.应该是在一个堆里面.为什么还会出现
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
都要新占一块内存,这么多次new是肯定要出问题的。
楼主可以试试把add()那一行注释掉看看结果