由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一个简单的java题
相关主题
什么情况下pass by reference比pass by pointer好?How can one determine whether a singly linked list has a cycle?
问一个c++问题关于reference vs. pointervoid * 和 char * 有区别吗?
can a pointer point to itself in c++?请教一个C++的小问题: Node *&curr Vs Node *curr
C++ 面试题目分享(1)C++ object size一问
C++ Q62: loop in a linked list (Bloomberg)C++ Q70: this pointer (skillport)
问个简单的C++ 函数参数问题C++ Question
面试面试官错了怎么办?pointer 和reference的区别
reverse random pointers of a single linked listC++ Q93 - Q95
相关话题的讨论汇总
话题: node话题: n2话题: object话题: reference话题: pass
进入JobHunting版参与讨论
1 (共1页)
p***s
发帖数: 78
1
void fun() {
Node node = new Node(6);
test(node);
System.out.println(node.data);

}

void test(Node node) {
Node n2 = new Node(5);
node.data = 9;
node = n2;
System.out.println( n2.data);
return;
}
1. 输出是什么?
2. node=n2 这个发生了些什么?
z*****5
发帖数: 1871
2
Node(int n) {
this.data = n;
}
假设Node的构造方法是这样?
我也是新手,不懂,node = n2应该是node的引用从原来的对象指到n2这个对象上了吧
;之后node这个引用访问到的就是n2引用的对象,node.data应该数值上就是n2.data。
对吗?
p*****2
发帖数: 21240
3
应该是5,9吧
p***s
发帖数: 78
4
那 node = n2 这个有什么影响?

【在 p*****2 的大作中提到】
: 应该是5,9吧
g**e
发帖数: 6127
5
没影响

【在 p***s 的大作中提到】
: 那 node = n2 这个有什么影响?
h******s
发帖数: 86
6
why

【在 g**e 的大作中提到】
: 没影响
g********s
发帖数: 125
7
5,9. 因为Java是pass by value, 所以pass进去的node只是真正object node的
reference的一个copy. 也就是说现在有两个reference指向object node. node.data
= 9,是把object node 给改变了。这里可以通过两个reference中任意一个来改变这个
object node的值。下一行node = n2,只是说这个copy的reference现在指向另外一个
object n2了。也就是只剩下原来那个reference还在指向object node,但是object
node的data被通过pass进去的reference给改了,所以变成了9。
h******s
发帖数: 86
8
thanks. send you 10 cents

data

【在 g********s 的大作中提到】
: 5,9. 因为Java是pass by value, 所以pass进去的node只是真正object node的
: reference的一个copy. 也就是说现在有两个reference指向object node. node.data
: = 9,是把object node 给改变了。这里可以通过两个reference中任意一个来改变这个
: object node的值。下一行node = n2,只是说这个copy的reference现在指向另外一个
: object n2了。也就是只剩下原来那个reference还在指向object node,但是object
: node的data被通过pass进去的reference给改了,所以变成了9。

g********s
发帖数: 125
9
呵呵 谢谢 伪币数第一次过2 不知道回帖楼主还发红包
s***0
发帖数: 117
10
To make it clearer for C/C++ people.
Node node = new Node();
new Node() creates an object on the heap, and returns the pointer to the
object.
node is really a pointer. When we pass node, the function makes a copy of
the pointer. The rest follows the behaviour of pointers, except node.data is
actually node->data in C/C++.
Plus you don't have worry about garbage collection, so it's more like a
smart pointer.

data

【在 g********s 的大作中提到】
: 5,9. 因为Java是pass by value, 所以pass进去的node只是真正object node的
: reference的一个copy. 也就是说现在有两个reference指向object node. node.data
: = 9,是把object node 给改变了。这里可以通过两个reference中任意一个来改变这个
: object node的值。下一行node = n2,只是说这个copy的reference现在指向另外一个
: object n2了。也就是只剩下原来那个reference还在指向object node,但是object
: node的data被通过pass进去的reference给改了,所以变成了9。

S******1
发帖数: 269
11
5, 9
pass by value:
1. For primary number, pass the copy of the value.
2. For object reference, pass the copy of reference.
1 (共1页)
进入JobHunting版参与讨论
相关主题
C++ Q93 - Q95C++ Q62: loop in a linked list (Bloomberg)
谁对design pattern比较熟?问个简单的C++ 函数参数问题
cs/ce刚毕业找sw工作面试准备的建议面试面试官错了怎么办?
问个我不太理解的问题--在别的地方看来的reverse random pointers of a single linked list
什么情况下pass by reference比pass by pointer好?How can one determine whether a singly linked list has a cycle?
问一个c++问题关于reference vs. pointervoid * 和 char * 有区别吗?
can a pointer point to itself in c++?请教一个C++的小问题: Node *&curr Vs Node *curr
C++ 面试题目分享(1)C++ object size一问
相关话题的讨论汇总
话题: node话题: n2话题: object话题: reference话题: pass