java会发生内存泄漏吗?
如果:
int[] a = new int[100];
double[] a = new double[100];
第一个语句申请的内存空间会泄漏吗?我有一个程序在jBuilder下调试,运行一段时间之后发生java.lang.OutOfMemoryError异常,是内存泄漏吗?
调试java内存泄漏有什么好的工具吗?
多谢了!

解决方案 »

  1.   

    一般不会泄露可能是你申请了过多的空间而未将引用释放导致空间不足可以用 System 类查一下或者用专业点的工具
    JRockit
      

  2.   

    用System类查?如何查呢?
      

  3.   

    yaray(雅睿,生活在别处) 的话是什么意思啊?
      

  4.   

    呵呵,如果
    int[] a = new int[100];
    a = new int[200];
    呢?
      

  5.   

    to ls
    a 变量指向 int[200]
    由于int[100] 不再有什么内容指向它,就等着垃圾收集器回收它.
      

  6.   

    to lz
    如果你使用 a数组的话,你是怎么区分是用的int[] 还是double[]的,
    能区分开吗?
      

  7.   

    我就是举个例子,问如果对同一个变量多次new会不会发生内存泄漏。
    现在看来是不会,这就是说如果程序运行一段时间抛出内存溢出的异常,就是说明内存真的不够?
      

  8.   

    Java 中没有 C/C++ 那种意义上的“内存泄漏”,但同样存在“内存使用不合理”的情形,举个比较变态的例子,你不断地 new 一个对象出来,然后把它记入一个 List,如此重复,一定会出现内存溢出的异常。那么,这算是“内存真的不够”吗?hehe,真是不够,但却是因为“内存使用不合理”造成的。我们实际写的程序虽然没有这么极端,但类似的问题却经常有。现在的机器动辄几百M甚至上G,绝大多数程序不会“真的内存不够”。
      

  9.   

    int[] a = new int[100];
    double[] a = new double[100];
    第一个语句申请的内存空间会泄漏吗?很负责的告诉你,这样做不会造成内存泄漏,但试图运行下面这段程序将会马上出现楼主说的错:Vector v = new Vector();
    while(true){
        v.add(new int[1000]);
    }
    maquan('ma:kju) 说得没错。java 收集内存的机制基本上是,检查内存中的对象,如果没有变量可以引用到这个对象,并且这个对象不是正在运行中的线程,则可能将它收回。
      

  10.   

    用optimizeit看了一下,发现是create了数据库的statement,然后没有close,于是不断的create,就内存溢出了,谢谢大家!
      

  11.   

    内存几乎不存在不够用的情况,只有使用不合理太正确了首先,java中不存在MemoryLeak情况,即便设置了一个循环不停的往Vector里面放置对象,也只
    能说内存使用不当,而不是内存泄露buglz说得那两个例子根本不存在问题重点在OutofMemory错误,这是说申请内存失败了(和内存不够用完全不一样)
    多数情况下,这种错误是在申请特殊内存,象系统有指定上界的内存,例如缓存;或者连续的内存,如数组。而实际上可用内存还没有用完。所以遇到OutofMemory异常时不要想内存是不是不够用,而是想是不是内存申请不合理呢。估计lz是新手,关于OutofMemory的问题不详解了,以后遇到了再问吧
      

  12.   

    最近在用eclipse编译的时候clean projects,每次编译到一半的时候之后发生java.lang.OutOfMemoryError异常。
          在没有办法的情况下重新新建了一次projects。现在没有出现这个问题了。      好像还没有人,对这个解释清楚啊。      感觉不是变量调用内存空间的内存泄漏啊。java没有指针啊,怎么会有内存泄漏啊。而且也不可能是计算机的内存不够用啊。
      

  13.   

    先查查内存泄流是啥意思。是 c++ 中 new 出来后,没有 delete ,才叫内存泄流。
      

  14.   

    为什么,每个人过来都好像是来装酷的阿。还是没人说java.lang.OutOfMemoryError异常--是怎么一会事。
      

  15.   

    JAVA程序DOM属性用法速查手册一
    来源:希赛网object 返回包含的对象。  
    offscreenBuffering 设置或获取对象在对用户可见之前是否要先在屏幕外绘制。  
    offsetHeight 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。  
    offsetLeft 获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置。  
    offsetParent 获取定义对象 offsetTop 和 offsetLeft 属性的容器对象的引用。  
    offsetTop 获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置。  
    offsetWidth 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度。  
    offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。  
    offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。  
    onLine 获取表明系统是否处于全局脱机模式的值。  
    opener 设置或获取创建当前窗口的窗口的引用。  
    outerHTML 设置或获取对象及其内容的 HTML 形式。  
    outerText 设置或获取对象的文本。  
    overflow 设置或获取表明当内容超出对象高度或宽度时如何管理对象内容的值。  
    overflowX 设置或获取当内容超出对象宽度时如何管理对象内容。  
    overflowY 设置或获取当内容超出对象高度时如何管理对象内容。  
    ownerDocument 设置或获取结点关联的 document 对象。  
    owningElement 获取 HTML 层次中的下个对象。  
    padding 设置或获取要在对象和其边距或若存在的边框的话就是对象和其边框之间要插入的全部空间。  
    paddingBottom 设置或获取要在对象下边框和内容之间插入的空间总量。  
    paddingLeft 设置或获取要在对象左边框和内容之间插入的空间总量。  
    paddingRight 设置或获取要在对象右边框和内容之间插入的空间总量。  
    原文太长未完,原文地址: http://develop.csai.cn/java/200612251145381881.htm
    JAVA程序DOM属性用法速查手册二: http://develop.csai.cn/java/200612251145381658.htm
    JAVA程序DOM属性用法速查手册三: http://develop.csai.cn/java/200612251145391697.htm
    JAVA程序DOM属性用法速查手册四: http://develop.csai.cn/java/200612251145391132.htm
    更多的资料下载可登陆:http://data.csai.cn/
     
      

  16.   

    中国共产党万岁
    坚决支持共产党
    坚决打击法轮功
    我看应该不会泄
    只有new或malloc了不delete 或free才会泄吧
      

  17.   

    to gongcheng28() 
    java.lang.OutOfMemoryError异常
    设置一下这个属性就好..不要问我属性在那..属性设置看你的机器而定
    JAVA_OPTS="-Xms256m -Xmx512m"