java内存使用状况,其实是有人关心的。。楼主这个结论武断了。。 另外,对于绝大多数javaer来说,会new Object()就可以了
再多点,可以学会 Class#newInstance.
再多点,可能还会 clone.
再多点,可能还会 serializable.恭喜你,能够在内存中分配地址创建对象的方法你都学会了。。至于如何释放,本来人家java设计者的原意就是不带你们玩的。

解决方案 »

  1.   

    Java的GC(垃圾回收)机制是极为优秀的,连.NET都是学习Java的这一点呢。
      

  2.   

    http://community.csdn.net/Expert/topic/3514/3514067.xml?temp=.3039972
      

  3.   

    事实并非如此吧,特别在GUI开发上,如果不小心,可能会有内存不能回收的情况出现。
    JBuilder可以用Optimize Project方式运行程序,可以看到虚拟机堆中有哪些对象实例,可以看到引用关系,以此可以推断什么地方可能会有问题。
      

  4.   

    protected void finalize();//这个方法仅在System.gc()回收一个对象时才调用的,主要是释放资源。如自己写数据库连接池,在这个方法中释放池中的所有连接(也就是退出jvm时)。
      

  5.   

    I am reading "inside JVM "now!
      

  6.   

    正如上面的朋友们说的那样大多数情况下资源的时是用java自己来完成的,但是有些时候确实需要自己来释放资源。这就需要在protected void finalize();中完成。
      

  7.   

    java没有“析构函数”这个概念。
      

  8.   

    不用考虑,如果是做B/S,资源开销多的话让客户用好点的硬件就行了.
    GUI一般都是在单机上用的,现在的机子都不会太差的.何况,Java的垃圾回收还是不错的!
      

  9.   

    for(int i=0;i<100;i)){
     new JDialog().show();
    }
    这段代码就有可能产生内存泄漏,那些JDialog对象可能不会被回收GUI在单机上使用,但是如果内存一直在上升,这样的程序给用户还是要谨慎一点的
    怕的不是JVM回收的效率,而是像这样一直不回收
      

  10.   

    java关心内存的重点已经不在西沟汉书上了,不过还是要关心的。另.net不是也有同样的垃圾收集机制,说明西沟实在是过期产品了。现在的内存泄漏已经是另外的引用的概念了
      

  11.   

    for(int i=0;i<100;i)){
     new JDialog().show();
    }
    这段代码就有可能产生内存泄漏,那些JDialog对象可能不会被回收GUI在单机上使用,但是如果内存一直在上升,这样的程序给用户还是要谨慎一点的
    怕的不是JVM回收的效率,而是像这样一直不回收
    ---------------------
    嗯,关键是要知道垃圾回收如何满足条件,比如这里要dispose掉,基础基础啊,呵呵。
      

  12.   

    for(int i=0;i<100;i)){
     new JDialog().show();
    }
    这段代码就有可能产生内存泄漏,那些JDialog对象可能不会被回收
    -----------------------------------------------------------------
    要搞清楚垃圾回收,就要知道JAVA是如何分配内存。
    其实JAVA使用内存是比较奢侈地,有空内存,是首先使用的。
    并且不是用上GC就随时给你收拾地,哈哈。不过这些东西我们不必过分关心
      

  13.   

    呵呵, 要是还要自己回收内存,不如用 C++ 得了,还用 Java 干什么!
    for(int i=0;i<100;i)){
     new JDialog().show();
    }
    这段代码就有可能产生内存泄漏,那些JDialog对象可能不会被回收这是因为 JDialog 会开启一个新的用户线程,而JDialog又是阻塞的,一直不能结束(只能用户手动结束),所以内存不能回收.
      

  14.   

    呵呵, abcdhy(程旭) ,即使你关了窗口还是不能回收的
    就像 bluesmile979(笑着) 说的,“关键是要知道垃圾回收如何满足条件”
    Dialog即使关闭了,实际上也只是相当于setVisiable(false)了,需要dispose掉才可以回收
    所以应该改成
    for(int i=0;i<100;i)){
    JDialog dlg = new JDialog();
     dlg.show();
    dlg.dispose();
    }
    或者
    for(int i=0;i<100;i)){
    JDialog dlg = new JDialog();
    dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
     dlg.show();
    }只是举个例子而已
    不要以为用了java就可以不关心内存了,基础知识还是牢固些的
      

  15.   

    而且,这种情况一般都会用单例模式。哪里会new 这么多次,一次足矣。
      

  16.   

    hehe,把程序做好一点没有错吧