java吧 关注:1,250,513贴子:12,733,176
  • 2回复贴,共1

引用数据类型有大佬可以给我讲讲吗,百度的我也没看懂

只看楼主收藏回复



IP属地:辽宁1楼2018-11-26 17:46回复
    首先所以对象都是引用数据类型,你创建一个实例对象,jvm都会分配一块内存存放这个对象,然后会把这块内存的地址赋给其他变量,改变任意变量的值,就是改变这块内存地址里变量的值,所有指向这块地址的变量的值就变了。


    IP属地:北京2楼2018-11-26 17:52
    回复
      我讲讲简单的吧。
      你记住,凡是能用new 关键字的都属于引用。int[] a = new int[10];所以数组a也是引用类型,也可以叫数组a变量。为了区分引用和基本数据类型,我们把基本类型的变量叫做变量,非基本类型(能用new关键字)的变量叫引用 基本类型的赋值如,int a = 10;我们把=叫做赋值,把10赋值给a。引用类型=叫做指向。int[] a = new int[10]; 引用a指向一个int类型的数组。
      如果有以下代码:
      nt[] a = new int[10];
      a[0] = 10;
      int[] b = a; //不是把a的值赋值给b,而是让b指向a的地址。
      System.out.println(b+"看看地址是否相同"+a); //可以看到内存地址一样
      b[0] = 5;
      System.out.println(a[0]); //答案也是5 为什么? 因为b指向a,b的地址也是a的地址。b[0]=5,所以a[0]也=5
      在引用类型传递中,要注意String 和基本类型包装类传递视为基本类型传递。原因以后你自己慢慢看


      IP属地:湖北3楼2018-11-26 18:14
      回复