Java が 「値渡し」 であることは、
次のプログラムで確認で来るわけですよ、ね?
・・・違います?どなたか添削してください。

public class CallTest{

private int num = 0;
private int callNum = num; //ここで何が起こっているか?

private Obje obje = new Obje(0);
private Obje callObje = obje; //ここで何が起こっているか?

public static void main(String[] args){

CallTest test = new CallTest();
test.showValues();

}


public void showValues(){

num = 1; //参照渡しなら、callNumも変化するはず。
System.out.println("num = "+num);
System.out.println("callNum = "+callNum);

obje = new Obje(1); //参照渡しなら、callObjeも変化するはず。
System.out.println("obje.num = "+obje.getNum());
System.out.println("callObje.num = "+callObje.getNum());

}



}

class Obje{
int num;
public Obje(int n){
num = n;
}

public int getNum(){
return num;
}

}