问一个关于垃圾回收的问题。 一个java进程(部署在TOMCAT下)不停在运行(每15分钟执行一次操作),但是其程序中用到的对象用完后都没有去掉其强引用,也就收都没有让变量指向NULL,请问每运行完一次后java垃圾回收会回收掉这些对象吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的问题描述不清。不过,你可以简单测试一下,将jvm的max heap size调小,然后打印出gclog来确认是否有内存泄漏。 怎么说呢 ? 这个java进程是一直持续运行的 只是这进程所做的操作是每15分钟一次。 我的意思是 当我在new完对象后 一直保持着强引用 问题是 当这个进程执行完一次操作后 第二次执行的时候 第一次执行操作时new的对象有没有被回收 哪些东西会被回收,那些东西不会被回收?答案:1、类的定义不会被回收。2、类的静态成员不会被回收。3、被类的静态成员引用的对象不会被回收。例如某个静态成员是一个 List,那么其中的元素就不会被回收,每个元素引用到的其他对象也不会被回收;除非该静态成员引用到另一个对象去,从而解除对该 List 的引用。所以,要想程序及时释放内存,首先尽量少用静态成员,其次小心对待那些类型为集合的静态成员。至于其他的对象,例如在方法内部定义的变量,它们的回收是很快的,因为变量存在于堆栈中,方法执行完,堆栈里的东西就弹出来,引用就没了。另外还有非静态成员。当一个对象被回收时,其成员也会被回收,除非它们还被其他的对象引用了。 不知道你的代码是怎样的比如while (true) { Object o = new Object(); Trhead.sleep(15*1000*60);}这样,每次循环都会回收o的,但是不保证及时回收所以说你要知道你的对象的作用范围,离开以后就算不手动设置null也会被回收 swing 怎么让Popup和JPanel自动调整大小和位置 java映射 Buffer映射文件 第一个hibernate 程序找不到数据库驱动 httpclient乱码问题,急求 谁来给我祥解下这个程序??谢拉 太平洋下找键盘--java编写软键盘求解 ! 用java转换xmlt结果跟用Microsoft.XMLDOM结果不同。而后者是我预期的。不知何故? java.util.zip实现压缩的目录层次问题 请问这是怎么回事? java 串口编程,JAVA读取串行接口数据 在线急等。。。。。。。。。。。。 关于linux下编写运行java程序的Shell脚本问题
1、类的定义不会被回收。
2、类的静态成员不会被回收。
3、被类的静态成员引用的对象不会被回收。例如某个静态成员是一个 List,那么其中的元素就不会被回收,每个元素引用到的其他对象也不会被回收;除非该静态成员引用到另一个对象去,从而解除对该 List 的引用。所以,要想程序及时释放内存,首先尽量少用静态成员,其次小心对待那些类型为集合的静态成员。至于其他的对象,例如在方法内部定义的变量,它们的回收是很快的,因为变量存在于堆栈中,方法执行完,堆栈里的东西就弹出来,引用就没了。另外还有非静态成员。当一个对象被回收时,其成员也会被回收,除非它们还被其他的对象引用了。
比如
while (true) {
Object o = new Object();
Trhead.sleep(15*1000*60);
}
这样,每次循环都会回收o的,但是不保证及时回收所以说你要知道你的对象的作用范围,离开以后就算不手动设置null也会被回收