从品牌网站建设到网络营销策划,从策略到执行的一站式服务
GC处理的只是堆内存的资源吧,屏幕资源还是要你自己释放的,写在你自己的finalize方法里。所以object提供了finalize方法以供复写,类似于C++的析构吧。
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了江津免费建站欢迎大家使用!
gc()只不过会向JVM发出这样一个申请
虽然系统并不一定会调用垃圾收集,但在某些情况下还是有意义的。
比如即将开辟大量内存之前使用手动请求gc,可能会比等系统自动调用gc来说让用户的感觉更加流畅。
不用手动调,即使你是搞内存型程序,你在调用gc时jvm也会有它的调度规则,不是你一调用就开始回收垃圾,所以在编程时注意释放没用的资源,尤其是在线程中,因为线程没结束有些资源是无法释放的。
没听说过有命令行能让一个正在运行的程序 gc 的,但 jdk 自带了 jconsole 能连接到本地的 JVM 进程,然后从它的 JMX 方法中找 vm 的 gc 方法。都有界面的,你只需要先连接成功本地的 jvm 进程就可以了。
Java的公有API可以主动调用GC的有两种办法,一个是
System.gc();
// 或者下面,两者等价
Runtime.getRuntime().gc();
还有一个是JMX:
java.lang.management.MemoryMXBean.gc()
作用跟System.gc()也是类似的。
MemoryMXBean.gc()和System.gc()的内部实现都是Runtime.getRuntime().gc(),从效果上说两者一模一样没有区别。
程序员是无法让System.gc();按照规则调用的,你可以在程序启动过程中写上这段代码,不过至于什么时候调用就要看JVM了.
不过,觉得你的程序或许应该有地方资源泄漏了吧,假如你的机器是2G内存,一般运行WindowsXP,大概也就用1/4内存,再加上的JVM,1G应该搞定了,剩下的1G,你用来加载信息,个人觉得,如果启动就死是不太可能的,如果运行一段时间,程序写的不完善可能会死掉,个人建议你还是好好看看自己的程序吧,如果确认程序没问题,那就只有加内存了,没有别的办法,光靠JVM的垃圾回收,效果不是很多.
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图