Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:值传递没有看懂 [Re:jackyshen]
johnnyv_cn





发贴: 1
积分: 0
于 2005-10-20 21:53 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
class A{
int amount = 0;
}
class B{
//拿到A的实例a的地址。把地址烧了,绝交。并没有把a杀死。
public static void setNull(A a) { a = null; }
//拿到A的实例a的地址;按照地址找到了a;赏了a一个大洋。
public static void setAmount(A a) { a.amount = 1; }
public static void main(String[] args){
A a = new A();
setNull(a);
System.out.println(a.amount); // 0
setAmount(a);
System.out.println(a.amount); // 1
}
}
通过new产生的对象本身是放在堆(heap)上的;a放在堆栈(stack)中,是对堆上的a对象的引用,并不是对象本身。setNull(a)中的a是该引用的值的拷贝(所谓的“按值传递”),并不是a对象本身。可以销毁该引用的值的拷贝,也可以通过该拷贝去调用对象的方法,从而改变对象的状态,但不能通过该拷贝销毁对象本身。


johnnyv_cn edited on 2005-10-23 09:17


话题树型展开
人气 标题 作者 字数 发贴时间
9935 值传递没有看懂 jackyshen 104 2005-10-12 23:27
8175 Re:值传递没有看懂 jackyshen 5 2005-10-12 23:27
8034 Re:值传递没有看懂 sl4zv 15 2005-10-13 19:39
8071 Re:值传递没有看懂 ranchgirl 86 2005-10-14 13:22
8083 Re:值传递没有看懂 jackyshen 2 2005-10-15 20:03
8126 Re:值传递没有看懂 jaman 61 2005-10-18 02:20
8247 Re:值传递没有看懂 jackyshen 15 2005-10-18 16:57
9018 Re:值传递没有看懂 ranchgirl 118 2005-10-21 11:52
8200 Re:值传递没有看懂 johnnyv_cn 592 2005-10-20 21:53

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923