数据结构Java堆栈peek
大家好,我想知道一些关于Java堆栈的事情。peek()是否返回对堆栈顶部实际对象的引用或对象的副本?例如,如果我运行以下代码:
Stack.peek().setName("name");
这会修改当前位于堆栈顶部的对象的名称字段,还是修改为一个完全不同的对象,其所有字段的值都相同
你可以在下面搜索框中键入要查询的问题!
大家好,我想知道一些关于Java堆栈的事情。peek()是否返回对堆栈顶部实际对象的引用或对象的副本?例如,如果我运行以下代码:
Stack.peek().setName("name");
这会修改当前位于堆栈顶部的对象的名称字段,还是修改为一个完全不同的对象,其所有字段的值都相同
# 1 楼答案
绝对是参考资料。它将更改名称
# 2 楼答案
因为peek返回一个对象的引用,所以它会被修改
# 3 楼答案
在http://download.oracle.com/javase/6/docs/api/java/util/Stack.html中,我看不到任何证据表明它为什么会返回副本,所以我真的认为它会改变原件
# 4 楼答案
一般来说,Java中很少有代码可以随意创建对象的副本
peek
将返回堆栈顶部的引用。。。不要忘记,对象首先不在堆栈上,只有引用因此,在您的示例中,您确实需要修改堆栈上的引用引用的对象的名称