Iは、2つのコードスニペットたい:x
の値は影響を受けないこのコードでのJava:によって値パスまたは参照渡し
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;
}
}
まず。この中
セカンド
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
で利用可能です。
どのように、なぜですか?第2のケースで
intはプリミティブであり、byte []は参照型ですか? –
@ YuriyZubarevすべての型は、プリミティブとリファレンスの両方がJavaの値で渡されます –
[many](http://stackoverflow.com/questions/498747/java-pass-by-value-reference-variables)[関連] (http://stackoverflow.com/questions/2027/pass-by-reference-or-pass-by-value)[質問](http://stackoverflow.com/questions/40480/is-java-pass-by -reference)を参照してください。 – kabuko