Java和C++引用的区别

  • Java的引用实际上是对指针的一个封装。
  • C++的引用是变量的一个别名。
  • Java的定义出来的变量(除了基本类型)其实就是一个引用,指向真正的对象。
  • C++可以通过将引用传入函数,在函数内修改所引用的对象,而Java不能。
  • Java是值传递,对于函数参数是直接copy一份(基本类型是数值,引用类型是引用的副本,指向同一个对象)。
  • Java不能将类对象作为参数,在函数内修改其信息,但是因为指向的是同一个对象,所以我们可以修改所指向的对象的信息。
class Value{
    int val;
}

public class ReferenceTest {

    public static void funA(int v){
        v+=5;
    }

    public static void funB(Integer v){
        v+=5;
    }

    public static void funC(Value v){
        v.val+=5;
    }


    public static void main(String[] args) {
        int v=5;
        funA(v);
        System.out.println(v);
        funB(v);
        System.out.println(v);
        Value vv=new Value();
        vv.val=v;
        funC(vv);
        System.out.println(vv.val);
    }
}

猜你喜欢

转载自www.cnblogs.com/zxcoder/p/12416123.html
今日推荐