国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > java什么是引用類型

    java什么是引用類型

    時(shí)間: 歐東艷656 分享

    java什么是引用類型

    引用類型 由類型的實(shí)際值引用(類似于指針)表示的數(shù)據(jù)類型。如果為某個(gè)變量分配一個(gè)引用類型,則該變量將引用(或“指向”)原始值。不創(chuàng)建任何副本。引用類型包括類、接口、委托和裝箱值類型。

      在Java中,數(shù)組和字符串都不是基本數(shù)據(jù)類型,而它們被當(dāng)作類來處理,它們是引用數(shù)據(jù)類型。

      例1:Java中使用String類創(chuàng)建的對(duì)象來引用字符串

      public class hello

      {

      public static void main(String[] args)

      {

      String a="abc";//1句

      String b=a;//2句

      a="jjj";//3句

      System.out.println(b);//4句

      }

      }

      1句:先進(jìn)行賦值號(hào)‘=‘右邊的,"abc"為一個(gè)字符串的常量,此時(shí)系統(tǒng)自動(dòng)為其分配內(nèi)存空間存儲(chǔ)它。而String a后,a為引用數(shù)據(jù)類型,a就指向了剛才分配的內(nèi)存空間。

      2句:b同樣為引用數(shù)據(jù)類型,將a賦給b,所以b也指向了字符串常量"abc"的內(nèi)存空間。

      3句:先進(jìn)行賦值號(hào)‘=‘右邊的,"jjj"為一個(gè)字符串常量,此時(shí)系統(tǒng)自動(dòng)為其分配內(nèi)存空間儲(chǔ)存它。a為引用數(shù)據(jù)類型,a指向了字符串常量"jjj"的內(nèi)存空間,不再指向字符串常量"abc"的內(nèi)存空間。

      4句:由于b仍指向字符串常量"abc"的內(nèi)存空間,沒有改變,所以輸出結(jié)果是"abc"。

      例2:

      public class hello

      {

      public static void main(String[] args)

      {

      int[] c={1,2,3};//1句

      int[] d=c;//2句

      c=new int[4];//3句

      for(int i=0;i

      {

      System.out.print(d[i]+" ");

      }

      System.out.println("");

      }

      }

      1句:賦值號(hào)右邊{1,2,3} (相當(dāng)于new int[3])系統(tǒng)分配了長(zhǎng)度為3的int型數(shù)組的內(nèi)存空間。而c為引用數(shù)據(jù)類型,指向了該內(nèi)存空間。

      2句:d也是引用數(shù)據(jù)類型,c賦給d,所以d也指向了上面的長(zhǎng)度為3的int型數(shù)組的內(nèi)存空間。

      3句:賦值號(hào)右邊new int[4],系統(tǒng)分配了長(zhǎng)度為4的int型數(shù)組的內(nèi)存空間。c指向該內(nèi)存空間,而不再指向以前的內(nèi)存空間了。而此時(shí)d仍指向1句中的內(nèi)存空間。

      所以"4循環(huán)"將輸出 1 2 3

      例3:

      public class hello

      {

      public static void main(String[] args)

      {

      int[] e={2,3,4};//1句

      int[] f=e;//2句

      e[0]=100;//3句

      for(int i=0;i

      {

      System.out.print(f[i]+" ");

      }

      System.out.println("");

      }

      }

      1句:賦值號(hào)右邊{2,3,4} (相當(dāng)于new int[3])系統(tǒng)分配了長(zhǎng)度為3的int型數(shù)組的內(nèi)存空間。而e為引用數(shù)據(jù)類型,指向了該內(nèi)存空間。

      2句:f也是引用數(shù)據(jù)類型,e賦給f,所以f也指向了上面的長(zhǎng)度為3的int型數(shù)組的內(nèi)存空間。

      3句:e指向的長(zhǎng)度為3的int型數(shù)組的內(nèi)存空間里的第一個(gè)元素的值改成100。由于f此時(shí)仍指向該內(nèi)存空間。所以"4循環(huán)"將輸出 100 3 4

    245875