gpt4 book ai didi

java 按值传递示例帮助我理解

转载 作者:行者123 更新时间:2023-12-02 21:04:50 25 4
gpt4 key购买 nike

我有以下代码

class sample
{

public void update(List l)
{
l = null;
}

public static void main (String[] args)
{

List m = new ArrayList();
m.add("suresh");
m.add("sankar");
new sample().update(m);
System.out.println(m);
}
}

答案将是 {["suresh,"sankar"]}。m 是指向 arraylist 对象的指针,它包含一个内存地址值(例如考虑 0xf34 )。当我们将 m 传递给 update 方法,局部变量 l 将被设置为 0xf34,它指向内存中的 arraylist 对象。当我们将这个变量 l 设置为 null 时,内存地址将 arraylist 替换为 null,因此变量 m 也应该引用 null。我对吗?请帮忙。

最佳答案

不,编译器是正确的。 :)

参数l包含对分配给m的ArrayList对象的引用。 l 被更新为 null,实际上,以后在 update() 方法中使用 l 都会将其视为 null。但是 l 是一个单独的变量,仅在该方法内具有作用域 - 它不以任何方式链接到 m (除了它们最初包含对相同的引用的事实)对象)。

关于java 按值传递示例帮助我理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3504028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com