下面先看看.net里的程序
---------------------
static void Main(string[] args)
        {
            int j=0;
            abc(ref j);
            Console.WriteLine(j);//这里把j的值打印出来是5
        }        static void abc(ref int i)
        {
            i = 5;
        }
-------------------------------下面是java.但没用什么ref
java里有没有像这种ref传地址的
----------------------------------------------
public static void main(String[] args)
{
int j = 0;
abc(j);
System.out.println(j);我想把j的值变成5,怎么解决?
}

public static void abc(int i)
{
i=5;
}
-----------------------------------------------

解决方案 »

  1.   

    java里的基本类型是值传递,没有地址传递;对象是地址传递.
    你或者把int类型的参数包装成Integer来传递或者设置返回值
    public   static   void   main(String[]   args) 

    int   j   =   0; 
    j=abc(j); 
    System.out.println(j);
    } public   static   int   abc(int   i) 

    i=5;
    return i; 
      

  2.   

    java中的所有的参数传递都是按值传递。。不存在按应用传递的
      

  3.   

    那个ref可以理解成内存指针,也将成为因为问题的一个可能,java不支持这种不健壮的做法,注意,不是不安全。
      

  4.   

    Java和C一样,不存在传引用。Java中所谓的“引用”其实相当于C/C++中的指针。
      

  5.   

    Java中primitive data type只能是传值。而对象只能是传引用。