易截截图软件、单文件、免安装、纯绿色、仅160KB

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的参数了,我们首先了解


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

在Java中操作串口实现短信收发

采用串口操作进行短信收发,是比较常见的一种方式.比如,很多群发软件,用的就是这种方法.
1.配置comm.jar.
Comm.jar是Sub实现底层串口操作的API,调用了本地的DLL文件,因为Java本身不具备直接访问硬件设置的能力,都是通过调用本地方法来实现的.可以Java的官方网站下载.下载之后把其中Comm.jar包导入到工程的Classpath中,把另 ......

java中native方法

JAVA不是完美的, JAVA的不足除了体现在运行速度上要比传统的C++慢许多之外, Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。    可以将native方法比作Java程序同C程序的接口,其实现步骤:
    1、在Java中声明native()方法,然后编译;
    ......

JAVA正则表达式使用方法

 正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持 
 
  下面简单的说下它的4种常用功能:
  
  查询:
  
以下是代码片段:
 String str="abc efg ABC"; 
 
String regEx="a|f"; //表示a或f 
 
 Pattern p=P ......

Java中的线程

在Java中,“线程”指两件不同的事情:
1、java.lang.Thread类的一个实例;
2、线程的执行。
使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。
一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。
Java中,每个线程都有一个调 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号