修改虚拟内存的步骤如下:
1.在myeclipse中设置defaultvmarguments,打开windows-gtpreferences-gtjava-gtinstalledjres-gt,点击jdk-gtedit-gtdefaultvmargumentsinuse,输入:-xms64m-xmx256m2。如果web项目报告内存溢出,可能需要设置tomcat内存。
(1)tomcat安装根目录%tomcat%file,setjava_opts行;
(2)myeclipse配置web服务器配置窗口-首选项-myeclipse-服务器-tomcat5.x-jdk可选javavmargum:maxn:maxp
1.在无限循环中定义局部变量会导致堆栈溢出,如下定义:
whil:。
例如,对象总是在循环中创建并放入列表中(以确保对象总是被引用),那么就会出现堆内存溢出内存错误:java堆空间。
但是如果javaweb中jsp文件较多或者第三方jar大于maxpermsize设置,那么就会出现永久生成内存溢出内存错误:permgenspace(java8中去掉了永久生成)。
但是,如果jvm占用了服务器中的大量内存,可能会出现内存不足错误:impossiblet,它无法创建新线程。o创建新的本机线程.
在这三种内存溢出的情况中,第一种和第三种可能会出现无限循环。
在实际开发中,通常的内存溢出都是由于开发人员编程不当造成的。所以我们开发人员在编写代码的时候要合理使用内存,比如合理使用强弱虚拟引用,自定义内存分配,减少内存溢出的概率。
希望我的回答对你有帮助。