亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > java什么是引用類(lèi)型

      java什么是引用類(lèi)型

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

      java什么是引用類(lèi)型

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

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

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

        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ù)類(lèi)型,a就指向了剛才分配的內(nèi)存空間。

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

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

        4句:由于b仍指向字符串常量"abc"的內(nèi)存空間,沒(mé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ù)類(lèi)型,指向了該內(nèi)存空間。

        2句:d也是引用數(shù)據(jù)類(lèi)型,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ù)類(lèi)型,指向了該內(nèi)存空間。

        2句:f也是引用數(shù)據(jù)類(lèi)型,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