java基础题,求教 典型的垃圾回收算法是什么?(最好附一段代码) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你把你的对象设置一个null ,系统自动给你回收了!垃圾回收是从那些没有用的数据开始回收! 一般垃圾回收机制用一段小代码演示很困难,因为触发垃圾回收机制必须满足一个对象被申请了但却不使用,并且在内存资源满足条件时系统才会回收,而垃圾回收机制不必自行调用,楼主可以做一个循环,疯狂申请一个对象看看(从一本老外写的J2SE的书上看到的一个演示垃圾回收机制的方法),但不一定能成功,因为机器的配置对JAVA虚拟机运行也有影响,我以前试过一次但没有成功~~ List list=new ArrayList();String tmpStr="";for(int i=0;i<500000;i++){ tmpStr="aa"+i; list.add(tmpStr); tmpStr=null; if(i%10000==0) { list=null; list=new ArrayList(); }}以上代码中每次循环生成的字符串加入到list中,循环结束时即便添加了绿色部分代码,但由于该引用的内容仍在使用,没有达到游离状态,所以他们不会被垃圾回收。当添加了10000的倍数个字符串时执行了红色代码,将list对象置空,则之前添加的所有字符串对象变成游离状态,可以被垃圾回收。楼主可以用JProfiler等性能测试工具实时查看,结果很清晰,也可以手工调用垃圾回收并打印出内存使用状况来查看 小公司里前台也要自己做吗? 关于ssh Struts2.1 + Spring3.0 + Hibernate3.3的问题 创建console对象不成功? 如何从web页面调用JMS从而实现消息即时通讯,类似于WEBQQ struts2 checkboxlist 的问题,请大家帮帮忙啊 Axis2调用WebService的问题 紧急求助各位. JSF 参数的传递 help help 关于JDOM的两个问题(实现树形结构问题与NoClassDefFoundErro错误) java 题 !!!!! 想问一下struts2 中action设计问题。
String tmpStr="";
for(int i=0;i<500000;i++)
{
tmpStr="aa"+i;
list.add(tmpStr);
tmpStr=null;
if(i%10000==0)
{
list=null;
list=new ArrayList();
}
}以上代码中每次循环生成的字符串加入到list中,循环结束时即便添加了绿色部分代码,但由于该引用的内容仍在使用,没有达到游离状态,所以他们不会被垃圾回收。当添加了10000的倍数个字符串时执行了红色代码,将list对象置空,则之前添加的所有字符串对象变成游离状态,可以被垃圾回收。
楼主可以用JProfiler等性能测试工具实时查看,结果很清晰,也可以手工调用垃圾回收并打印出内存使用状况来查看