解决方案 »
- 帮帮忙,这是怎么回事?
- 求救啊,为什么我那么 javaw.exe 驻在内存里,无法释放????
- 请问如何判断一个字串是另一个字串的子串?
- 完了,我彻底的完了,求命啊~~~~~~~~~
- 大家好!我是非计算机专业,我想学编程。
- 问哪有JFC核心编程(第二版)(清华大学出版社)的光盘下载啊!
- 如何写一个能够自己装载applet的程序
- java问题
- 散分,上午过的SCJP, 询问各位同人SCJD的情况。
- 我是初学者,请各位前辈帮忙.我把数组中的内容显示在文本域里,当数据多的时候,他显示一部分就不动了,为什么?如何解决??十万火急,!!!!!!
- windows自带的任务计划运行java程序跟直接双击运行java程序不能达到同一效果
- 用java代码怎样实现开机自启动
首先c1.go(c2)这里,c2这个参数是一个副本,所以它被赋为null不会引起垃圾回收
而return了个null赋给c3,c3本来就没有被赋值,所以也没有引起垃圾回收
然后c1=null;本来c1被赋给了一个对象,但是这个时候c1不指向这个对象了,这样就有可能引起垃圾回收了
CarBoard c1=new CarBoard();
CarBoard c2=new CarBoard();
c1和c2分别持有两个对象的引用.
CarBoard c3=c1.go(c2);
CarBoard go(CarBoard cb){
cb=null;
return cb;
}
注意方法调用的时候,形式参数cb和实际参数c2是两个东西,不过它们的内容相同,指向同一个对象.
在方法中让cb为null,c2不受影响,仍然指向原来的对象.返回null之后,c3为null
c1=null;
这时候c1原来引用的对象因为不存在对它的引用了,所以是可回收的.而且只有这一个可回收.
这样说就有些乱了.在c1原来指向的CardBoard对象中有一个Short s=5这个对象,c1原来指向的对象回收的时候它肯定一起回收了.比较绕.