java 怎么释放内存?

CellControl cc = new CellControl(this.areaNumber.toString(),Integer.toString(i + 1),"1", this.con_id, this.conn);
strCode_temp = cc.returnCellCode(errAlert, contract, number,session);
上面这段 new了这个东西后只是执行了一个方法 然后实际上这个就没用了 但是这段代码是在一个循环至少100甚至1000+的for循环里 那昂一定会无限new吧 目前数据库的游标数执行一个大的表单的时候能达到100W次。。。 算来算去就是这里出问题。。。
只要能把这个new出来的释放掉 应该就可以了 谁知道咋释放 - -
能给说个简单方案吗? 或者网上介绍也好
我要想释放他 是不是
cc=null;gc();
这么写可以么?
你回答的还真快啊。。
那在我这个for循环结束之前并不会执行清理吧。。 变NULL可能也不好使 疯了

cc=null;就可以了。java 虚拟机会自己调用gc()方法去释放内存。

显示的调用System.gc()或Runtime.getRuntime().gc()也是可以的。调用了gc()并不会强制释放内存,虚拟机会尽最大努力从所有丢弃的对象中回收了空间。

参考资料:http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/lang/System.html#gc()

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-07-22
的却是将对象指向null,然后再System.gc();不过你即使调用了gc也只是向java虚拟机发信号而已,具体何时执行得看jvm他老人家心情如何,更多Java引用释放方面的问题,参照

参考资料:http://zhidao.baidu.com/question/101070382.html

第2个回答  2009-07-22
JAVA里面有一个自动释放 内存机制 的,gc()
第3个回答  2009-07-22
让其等于null或者gc()都可以!
第4个回答  推荐于2017-10-02
  垃圾回收(garbage collection,简称GC)可以自动清空堆中不再使用的对象。垃圾回收机制最早出现于1959年,被用于解决Lisp语言中的问题。垃圾回收是Java的一大特征。并不是所有的语言都有垃圾回收功能。比如在C/C++中,并没有垃圾回收的机制。程序员需要手动释放堆中的内存。
  由于不需要手动释放内存,程序员在编程中也可以减少犯错的机会。利用垃圾回收,程序员可以避免一些指针和内存泄露相关的bug(这一类bug通常很隐蔽)。但另一方面,垃圾回收需要耗费更多的计算时间。垃圾回收实际上是将原本属于程序员的责任转移给计算机。使用垃圾回收的程序需要更长的运行时间。
  在Java中,对象的是通过引用使用的(把对象相像成致命的毒物,引用就像是用于提取毒物的镊子)。如果不再有引用指向对象,那么程序员就再也无从调用或者处理该对象。这样的对象将不可到达(unreachable)。垃圾回收用于释放不可到达对象所占据的内存。这是垃圾回收的基本原则。
  (不可到达对象是死对象,是垃圾回收所要回收的垃圾)
  早期的垃圾回收采用引用计数(reference counting)的机制。每个对象包含一个计数器。当有新的指向该对象的引用时,计数器加1。当引用移除时,计数器减1。当计数器为0时,认为该对象可以进行垃圾回收。

  然而,一个可能的问题是,如果有两个对象循环引用(cyclicreference),比如两个对象互相引用,而且此时没有其它(指向A或者指向B)的引用,程序员实际上根本无法通过引用到达这两个对象。
  因此,程序员以栈和static数据为根(root),从根出发,跟随所有的引用,就可以找到所有的可到达对象。也就是说,一个可到达对象,一定被根引用,或者被其他可到达对象引用。

java 怎么释放内存?
cc=null;就可以了。java 虚拟机会自己调用gc()方法去释放内存。显示的调用System.gc()或Runtime.getRuntime().gc()也是可以的。调用了gc()并不会强制释放内存,虚拟机会尽最大努力从所有丢弃的对象中回收了空间。参考资料:http:\/\/gceclub.sun.com.cn\/Java_Docs\/html\/zh_CN\/api\/java\/lang\/Sys...

java语言中当一个变量使用完毕后,如何释放它
第一种方法:通过System.gc(); 通知垃圾回收机制进行回收。第二种方法:通过 变量名=null; 把引用清空 第三种方法: 啥也不做,垃圾回收机制会自动回收

怎样释放JAVA程序运行中所用的内存
JAVA具有自动的垃圾回收机制,不需要释放内存的操作;垃圾回收能自动释放内存空间,减轻编程的负担。这使Java 虚拟机具有一些优点。首先,它能使编程效率提高。在没有垃圾回收机制的时候,可能要花许多时间来解决一个难懂的存储器问题。在用Java语言编程的时候,靠垃圾回收机制可大大缩短时间。其次是它保护程...

java 程序的内存溢出问题如何解决?
Java程序的内存溢出问题可以通过以下几种方式来解决:1. 增加JVM堆内存大小:可以通过在启动JVM时设置-Xmx和-Xms参数来调整堆内存的大小。例如,"-Xms256m -Xmx1024m"表示最小堆内存为256MB,最大堆内存为1024MB。2. 优化代码:检查代码中是否存在内存泄漏或者不必要的大对象创建。例如,使用完的大对...

【悬赏100】手机上java内存怎么释放?请教简单的方法。
最好的方法就是关机重启,。。。一个java程序---Freespace,通过在手机上安装执行这个java程序 说实在话,我不明白,你是要做软件,还是优化手机内存 如果是做是优化手机内存的话在手机上少装点软件,少打开太多后台程序就可以了 如果是自己写手机代码的话,就是一些零碎的规则了 写代码的基本都知道,...

java如何手动释放内存
java当中数组是不需要手动释放的,底层有自动回收垃圾的机制,扩展如下:前一次循环结果如果没有被引用,那么会等待被自动释放,如果被引用,则不释放。String[] str2=new String[500];意思是每次循环都重新定义,并且重新赋值为新创建的数组对象,而上次循环所声明的变量以及所创建的数组对象都被列入自动...

java进程管理的问题。能不能设置一个JAVA的进程运行一段时间后强行退出...
如果得到你要的效果,是可以的,解决办法如下几种:1、在进程中都做一个Socket的监听某个端口,同时,扫描所有端口看是否有人给你正确的响应,如果响应正确,代表有一个你的进程在执行,那么你做对应处理就好了 2、做基于Native的方式,用C或C++做钩子 注意,销毁的时候注意调用gc来手动释放 ...

Java 的内存管理机制是怎样的?
Java的内存分配有三种, \\x0d\\x0a1、静态存储区:内存在程序编译时就分配好了,比如静态变量; \\x0d\\x0a2、栈区:各种原始数据类型的局部变量都是在栈上创建的,当程序退出该变量的作用范围的时候,这个变量的内存会被自动释放。 \\x0d\\x0a3、堆区:对象(包括数组)都是在堆中创建的。程序在...

Java中 gc的作用是什么?
System.gc()用来强制立即回收垃圾,即释放内存。java对内存的释放采取的垃圾自动回收机制,在编程的时候不用考虑变量不用时释放内存,java虚拟机可以自动判断出并收集到垃圾,但一般不会立即释放它们的内存空间,当然也可以在程序中使用System.gc()来强制垃圾回收,但是要注意的是,系统并不保证会立即进行...

java什么时候该写.close()释放资源
如果有close方法,在你完成任务后执行它 并且最好在finally块内做close,因为即使发生了例外,这些代码也能被调用。对于使用完了的对象来讲,Java不推荐使用类似于C++的析构函数来释放内存(C++中new完后得delete,Java中new完,使用后,将其置 成null比较好),因为GC会调节最适当的时间来释放内存,在...

相似回答