int enumerate(Thread[] list)
函数使用有关活动线程的信息更新指定的list[]
(调用函数)。怎么可能? list[]
作为参数传递给枚举函数而没有它的引用,函数只返回一个int值。那么对list[]
所做的更改如何反映在调用函数{{1}中} ???
答案 0 :(得分:0)
在Java中,所有内容都通过按值传递,但您将对象实例的引用与对象实例本身混淆
在您的情况下,数组list[]
的引用按值传递,这意味着无论您是否修改引用(例如执行list[] = new list[5]
,当方法结束时,此新引用将丢失,因为它是通过值传递的(也就是说,原始值的副本被发送到方法)。
但是你确实可以修改这个引用指向的对象实例(例如list[5] = new Thread()
),当方法返回时,该对象将保持修改状态(如果对象是可变的,那就是)。