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

Java内存溢出

从物理上讲,堆栈就是一段连续分配的内存空间。在一个程序中,会声明各种变量。静态全局变量是位于数据段并且在程序开始的时候就被加载。而程序的动态的局部变量则分配在堆栈里面。
JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出,或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改为新部署的,非堆存的内容就会越来越多。
解决内存溢出问题:
在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat、jboss,weblogic)加载jar包时会出现java.lang.OutOfMemoryError异常。这主要是由于应用服务器的内存不足引起的。这种异常常有以下几种情况(以下以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理):
  1. java.lang.OutOfMemoryError: PermGen space
  PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space。从文字上看就是内存溢出,解决方法是加大内存。为什么会内存溢出,这是由于这块内存主要是被JVM存放Class和Meta信息的,Class在被Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
  解决方法: 手动设置MaxPermSize大小
  a.如果tomcat是以bat方式启动的,则如下设置:
  修改TOMCAT_HOME/bin/catalina.sh
  在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
  JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
  b.如果tomcat是注册成了windows服务,以services方式启动的,则需要修改注册表中的相应键值。
  打开注册表,找到目录HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\htfty\Parameters\Java,其中目录地址中红色标注的(如htfty)需要根据不同情


相关文档:

java 多态(2)

(本文转载)
原文:http://blog.csdn.net/thinkghoster/archive/2008/04/19/2307001.aspx
class
 A
...
{
         
public
 String show(D obj)
...
{
             &nbs ......

java实现图片与base64字符串之间的转换

package cn.com;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Base64Test
{
public static void main(String[ ......

JAVA Something

JDK
Sun JDK
http://java.sun.com/javase/downloads/index.jsp
IBM JDK
http://www.ibm.com/developerworks/java/
http://www.ibm.com/developerworks/cn/java/
IDE:
Eclipse
http://www.eclipse.org/
Container:
Apache HTTP server
http://www.apache.org/
Tomcat: JSP,Servlet,JavaBean container.
http:// ......

七 Java EE

   什么是java EE了。一般来说,一个成熟的java EE解决方案,包括以下几个部分。
 
 1、可以对外提供基于标准协议如xml的服务
如Web Service
 2、内部通信基于面向对象的通信协议
如 RMI,Corba,XML RPC
 3、安全性高,权限控制严格
如 MD5,SSL,AccountDomain
 4 &nbs ......

JAVA程序员的钱途

      清华大学出版社《Java程序员,上班那点事儿》作者:钟声 章节:1.1小节
      我们刚刚进入本书的正题就拿出一个俗不可耐“钱”字来和大家大谈特谈,未免不雅。但是,我还是要在一开始就要说这个问题,因为这是很多朋友关心的问题,为什么不先说 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号