java开发中的虚拟机内存问题
最近运行程序,老是遇到内存溢出的问题,Out of Memory(系统内存不足)的异常。仔细查资料,好好学习了一下虚拟机的几只,才知道,这是因为Java虚拟机默认分配的内存只有64M,如果应用的比较大,超出了64M,Java虚拟机就会抛出OutOfMemoryError,并停止运行。所以,如果我们要运行大程序,就必须添加内存使用命令-Xms(最小使用内存) -Xmx(最大使用内存)。
一般在开发有,我们有如下几种可能用到的地方。
1.单独的.class
java -Xms64m -Xmx256m Test
2.在eclipse中,运行这种程序可以这样配置,Run->Open Run Dialog->Arguments,在VM arguments中输入 -Xms64m -Xmx256m ,点击Run就可以运行程序了。
3.直接修改eclipse虚拟机,window->Preferences->Java->Installed JREs选择运行的虚拟机,在Default VM Arguments中
加入输入-Xms64m -Xmx256m ,也可以添加其他参数如-Xms128M -XX:PermSize=64M -XX:MaxPerSize=128M
4.修改eclipse.ini
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
5.Tomcat需要修改%CATALINA%\bin\catalina.bat文件,在开头的地方加入set JAVA_OPTS=-Xms256m -Xmx512m,
如果没有 catalina.bat文件,可以在运行tomcat6w.exe的时候,修改其中的Initial memory pool和Maximum memory pool的值,分别为256,512.
这里有几个问题:
1. 各个参数的含义什么?
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?
下面我们一一进行回答
1. 各个参数的含义什么?
参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解
相关文档:
正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持
下面简单的说下它的4种常用功能:
查询:
以下是代码片段:
String str="abc efg ABC";
String regEx="a|f"; //表示a或f
Pattern p=P ......
package com.infowarelab.java.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTester {
@SuppressWarnings("unchec ......
首先,做一点说明。Flex是不能直接连接数据库的,这一点大家需要知道,它只能间接地连接数据库。Flex中提供了三种方式:HttpService,WebService 和RemoteObject。其中HttpService可以直接获取XML中的数据,还可以通过JSP,ASP以及PHP读取数据库中的数据,这个比较简单,而且网上也有很多例子,我就不多说了。WebServi ......
/*通过鼠标拖放文件到制定控件中,并判断是否为文件,如果是,则调用文件发送方法ChatFrame.SendFile(finalpath);
*/
class TextDropTargetListener implements DropTargetListener
{
CODER Coder = new CODER();
CHAT_FRAME ChatFrame;
/**
Constructs a listener.
@param aTextArea the ......