不用星星就能回答。
public   class   ParamTester{ 
       public   int   memberVariable=0;   
       public   static   void   main(String   args[]){   
             int   param1=0;    
             ParamTester   param2=new   ParamTester(); 
             ParamTester   param3=new   ParamTester(); 
             int   param4[0]={0};  		 
             changeParameter(param1,   param2,   param3,   param4);					   
             System.out.println( "param1= "   +param1); 
             System.out.println( "param2.memberVariable= "+param2.memberVariable);                                                          
             System.out.println( "param3.memberVariable= "   +   param3.memberVariable); 
             System.out.println( "param4[0]= "+param4[0]); 
       }   
       public   static   void   changeParameter(int   param1,   ParamTester   param2,   ParamTester   param3,   int      
 []   param4){ 
             param1=1;    
             param2.memberVariable=1;    
             param3=new   ParamTester(); 
             param3.memberVariable=1; 
             param4[0]=1;    
       } 
 }   
 最后打印出: 
 0 
 1 
 0 
 1   
 我不明白的是为什么param1,param2,param4   同样作为参数传给changeParameter, 
 最后param1的值是0,而param2.memberVariable跟param4[0]的值是1。 
------解决方案--------------------- -!!   
 这帖子又出现了,刚作了回答,一提交就提示帖子不存在。现在又出现了,怪事。     
 param2在作参数传递的时候是按引用传递的,就是说在changeParameter里边的那个param2像一个指针一样,指向外边那个param2的地址,改变的其实是外边的param2的值。 
 而param4是按值传递的,方法changeParameter里边的那个param4可以说是外边那个param4的克隆,它们不是同一个变量,分别在内存里占两个位置,但值是一样的。改变其中一个变量的值不影响另一个变量。
------解决方案--------------------param4[0] 数组是对像    
 所以 是传引用 在方法内部修改了 会影响相应的值