169it科技资讯
169it -->


当前位置:  技术问答>java相关

哪位大侠帮看看资源回收问题

    来源: 互联网  发布时间:2015-11-21

/**
*   FirstClass.java
*/

package first;

public class FirstClass {
  public FirstClass() {
      ++m_nReference;
      System.out.println("My " + m_nReference + " Class contructor.");
  }

  public FirstClass(String strMsg){
      System.out.println(strMsg);
  }

  public void finalize()
  {
      System.out.println("Memory clear");
  }

  void clearObject(){
      if(m_nReference  > 0)
      {
           System.out.println("My " + m_nReference + " Object delete.");
           --m_nReference;
      }
  }
  static int m_nReference;
}


/**
*   Property.java
*/

package first;

import java.util.*;
import first.FirstClass;

public class Property {
    public static void main(String[] args) {
          FirstClass firstObject[] = new FirstClass[10];
          for(int i = 0; i < 10; ++i)
          {
              firstObject[i] = new FirstClass();
          }

          for( int i = 0; i < 10; ++i)
          {
             firstObject[i].clearObject();
          }

          System.gc();
    }
}

但是为什么我调用了System.gc(),却没有输出"Memory clear"

|
这段程序当然不会输出“Memory clear”,首先你调用System.gc()是无用的。因为firstObject[]中对象的强引用并没有消失。其次,java并没有承诺释放一个对象时一定会调用对象的finalize()方法

|
System.gc();
System.runFinalization();
Runtime.getRuntime().runFinalization();
Runtime.getRuntime().gc();
以上四个都是不是绝对的,而下面是绝对的,不过现在不推荐使用的说
System.runFinalizersOnExit(true);

|
just use :System.runFinalizersOnExit(true);
你就可以看到你想要的结果了
本页相关标签:

    
相关技术文章:
    ▪请各位帮忙看看这段代码。。。

     下面这段代码编译出错,请教各位如何改正?谢谢! import java.sql.*; public class DBConn {   String DBDriver = "jdbc:mysql://localhost/cwt";   Connection conn = null;   ResultSet rs = null;   public DBConn {     try {     //加载数据库驱动程序     Class.forName(DBDriver);     }     catch(java.lang.ClassNotFoundException e) {       System.err.print("DBConn (): " + e.getMessage());     }   }   public ResultSet executeQuery(String sql) {     rs = null;   }   catch(SQLExcption ex) {     System.err.print("aq.executeQuery: " + ex.getMessage());   }  ......


    ▪哪里可以下载到, Windows平台下的图形化CVS客户端软件?哪种

     哪里可以下载到, Windows平台下的图形化CVS客户端软件?哪种使用更方便些? | wincvs  www.cvsgui.org | 还有 jCVS, 基于 Java 的 | wincvs1.3 ......


    ▪请教JAVA中的数据结构

     我现在刚刚了解了java中是大致思想,会编一些简单的程序,如果我要实现类似与C中的链表、结构等一些数据结构的话,该怎么实现 | 使用List(ArrayList、LinkedList)等 | 自己也可以搞好,获取灵活。 ......


 
最新技术文章:
    ▪visual age for java 与 webphere studio 的区别?

     各位大侠:     请问visual age for java 与 webphere studio 的区别? | visual age for java已经不在出新版本了,WSAD是它的下一代产品。 | visual age for java最多到版本4,现在WSAD已经版本5了,WTE也已经到版本5了。 ......


    ▪入门书看完了一本.可还有很多不明白,谁介绍本书我看?

     看完了<JSP动态网页入门实务>,可感觉还好多东西都不懂.有好的书推荐一本.. 探索JSP的小菜鸟..望大家多多指教.因为我实在是太菜了. | jsp核心技术详解 good! ......


    ▪一个数据库操作javabean的问题

     package mydb; import java.sql.*; public class Dbconn { String sDBDriver="org.gjt.mm.mysql.Driver";     String sConnStr="'jdbc:mysql://localhost/sinomos?useUnicode=true&characterEncoding=UTF8','root','123456')";     Connection conn=null;     ResultSet rs=null;     public Dbconn()     {         try{             Class.forName(sDBDriver);         }         catch(java.lang.ClassNotFoundException e)         {             System.err.println(e.getMessage());         }     }    public void executeInsert(String sql)     {         try       ......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号