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的不足除了体现在运行速度上要比传统的C++慢许多之外, Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口,其实现步骤:
1、在Java中声明native()方法,然后编译;
  ......
有两种方式:静态部署和动态部署。在下文中$CATALINA_HOME指的是Tomcat根目录。
一、静态部署
静态部署指的是我们在服务器启动之前部署程序,只有当服务器启动之后,Web应用程序才能访问。以下3中方式都可以部署:
1、将PetWeb目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器就可以了。这种方式比较简单,但是web ......
关键字: axis
由于没学习过.net
,最近程序中需要调用.net
的webservice
接口得到一张图片。在网上找了好多资料选用的axis来实现调用。
首先看看.net
实现Webmehod的两种方式,这两种方式java
传参数的方式也有不同
1.rpc方式:
Java
代码
using System;
using& ......
/*通过鼠标拖放文件到制定控件中,并判断是否为文件,如果是,则调用文件发送方法ChatFrame.SendFile(finalpath);
*/
class TextDropTargetListener implements DropTargetListener
{
CODER Coder = new CODER();
CHAT_FRAME ChatFrame;
/**
Constructs a listener.
@param aTextArea the ......