赋值问题? myBall=ball;//在这种情况下,ball和myBall是不是还是指向同一块内存地址呢?当然是了Sphere myBall=new Sphere;这句生成的空间就要被回收了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Sphere ball=new Sphere;Sphere myBall=new Sphere;这两句表示在内存中分别为ball和myball分配了空间myBall=ball表示将ball赋值给了myball,即他们都指向内存的同一块空间!不过原来myball的空间就要被java的垃圾回收器清理掉了! Sphere myBall=new Sphere;分配的内存在myBall=ball后失去引用,将被收回! public class Sphere{public static void main(String [] args){Sphere ball=new Sphere();Sphere myBall=new Sphere();System.out.println(ball);System.out.println(myBall);System.out.println("=============================");myBall=ball;System.out.println(ball);System.out.println(myBall);}}楼主可以用这段代码去测试一下!从打印出来的地址,你可以发现很多东西 java中没有使用new的赋值都只是针对reference的赋值(primitive type除外),也就是简单的让一个变量可以控制这个对象。 myBall=ball;//在这种情况下,ball和myBall已经不是指向同一个内存地址了。 最优路径求解 如何在eclipse里面运行JList[100分] 新手上路,高手们帮帮忙:) 50分 程序打包后密码域出问题了 java的开发文档有没中文版的? 好游戏!!! 有argments的console程序的usage应该怎么写? 无法使用appletviewer??? JAVA APPLET 出错提示. 求征有关MVC方面的电子文档 jbuilder4怎么使用? 高分问个简单问题
Sphere myBall=new Sphere;
这两句表示在内存中分别为ball和myball分配了空间
myBall=ball
表示将ball赋值给了myball,即他们都指向内存的同一块空间!不过原来myball的空间就要被java的垃圾回收器清理掉了!
分配的内存在myBall=ball后失去引用,将被收回!
{public static void main(String [] args)
{
Sphere ball=new Sphere();
Sphere myBall=new Sphere();System.out.println(ball);
System.out.println(myBall);
System.out.println("=============================");
myBall=ball;
System.out.println(ball);
System.out.println(myBall);
}
}
楼主可以用这段代码去测试一下!
从打印出来的地址,你可以发现很多东西