java heap space 异常

在eclipse中运行,连接的是Oracle数据库。从别的表读出来,插到另一个表中。有10万条的数据,当插到8万条的时候,出现如下异常:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at process.Car.sjqb(Car.java:104)
at process.Car.main(Car.java:249)

查资料说是JVM参数设置有问题,在windows 更改系统环境变量加上JAVA_OPTS=-Xms512m -Xmx512m 在eclipse的eclipse.ini
文件中也改了-Xms512m -Xmx512m。为什么照样会出现这个问题呢?希望大侠指导,非常非常的感谢!!!!!!!

 

你改的配置文件是eclipse的运行配置。不是你的程序内存。
看你的写法就是直接写在main函数里头。你要这样去配置。
你在run那边有个open run dialog。在java application里头会有你跑过的application如果没有就建一个,然后在Arguments里头的VM arguments里面去配置你的参数~~~
wangxin0072000方法很不错,靠硬件来解决你这个问题始终不是办法。

显然512M不够呗。10万条记录一次性插入?有点不科学,建议分割多次提交比如每插一万条之后flush一次,如果使用了Hibernate,记得flush之后清一下内存,就是evict。

你可以在eclipse里面单独对你要执行的java文件设置所需要的jvm虚拟内存,然后试一下

eyeqq的方法是正确的

都是要靠缓冲机制,不然内存始终要用完的!