String 类的对象在程序结束后,jvm能否将其回收。 在程序中有很多String 类对象,在程序结束后,这些对象是否还占用内存?有没有简单的方法将这些对象一次回收。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在java中不在存在象C++中那样让人头痛的资源回收的问题,应为在jvm中会自动对无用资源进行回收,不过虽然jvm提供了垃圾回收机制,但是我们也可以加速垃圾的回收。以你现在的例子为例,你在使用String对象的时候,最好在程序结束地方对不在使用的String对象赋空,即String obj = null;然后在程序结束的地方,调用Runtime.gc()函数来手动触发JVM进行垃圾回收,这样就能在你的程序结束的时候,进行你所需要的资源的释放。 应该不占用内存了,JAVA实行的是垃圾回收机制,所以JAVA只有构造函数,没有析构函数.在程序结束的时候gz会把没有句柄的对象释放掉. 不会,只要找不到String的引用就行会被回收,String是这样构造的,对于不是new String来构造的String是先到String池查找是否有这个String(String的常量池是由jdk自己维护的,这个池中最开始只是生成Class的Static的String),没有则建立一个新的String,返回来如果对于字符串操作很多,如对String后面append, delete中的一部分操作很多的话,最好是用StringBuffer,因为垃圾回收机制不是万能的 怎么说得那么复杂,java里,对于一块空间,如果没有任何一个reference varible指向他,gc发动的时候就会帮你回收了 对象名 'pet' 无效。 Struts 标签输出日期,怎么设置输出格式 这个JTreet 怎么了? 关于JPopupMenu的问题,请大家帮帮忙,谢谢。 建议版主,封杀该帐号 请教一个Eclipse的初级问题 求助:动态生成类,方法可见性的问题 帮偶MM问题一问题:有关内嵌类命名规则的问题,大家进来看看 为什么dialog窗体总是会跳到屏幕的左上角 请教 Error establishing socket 我要崩溃了 日期转化
以你现在的例子为例,你在使用String对象的时候,最好在程序结束地方对不在使用的String对象赋空,即String obj = null;
然后在程序结束的地方,调用Runtime.gc()函数来手动触发JVM进行垃圾回收,这样就能在你的程序结束的时候,进行你所需要的资源的释放。
String是这样构造的,对于不是new String来构造的String是先到String池查找是否有这个String(String的常量池是由jdk自己维护的,这个池中最开始只是生成Class的Static的String),没有则建立一个新的String,返回来如果对于字符串操作很多,如对String后面append, delete中的一部分操作很多的话,最好是用StringBuffer,因为垃圾回收机制不是万能的