gpt4 book ai didi

java:按值传递或按引用传递

转载 作者:行者123 更新时间:2023-12-01 06:33:19 24 4
gpt4 key购买 nike

我有两个代码片段:

第一

class PassByTest{
public static void main(String... args){
PassByTest pbt=new PassByTest();
int x=10;
System.out.println("x= "+x);
pbt.incr(x);//x is passed for increment
System.out.println("x= "+x);//x is unaffected
}
public void incr(int x){
x+=1;
}
}

在此代码中,x 的值不受影响。

第二

import java.io.*;
class PassByteTest{
public static void main(String...args) throws IOException{
FileInputStream fis=new FileInputStream(args[0]);
byte[] b=new byte[fis.available()];
fis.read(b);//how all the content is available in this byte[]?

for(int i=0;i<b.length;i++){
System.out.print((char)b[i]+"");
if(b[i]==32)
System.out.println();
}
}
}

在此文件的所有内容都可以在 byte[] b 中找到。 .
如何以及为何?

最佳答案

Java is always pass-by-value.

但在第二种情况下,您将按值传递引用(数组是一个对象,而 Java 对象始终通过引用来访问)。因为该方法现在拥有对数组的引用,所以可以随意修改它。

关于java:按值传递或按引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9387963/

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