520這一天給你new一個迪麗熱巴,可是輸出鳳姐。你真的分的清new的對象是誰嗎?

前言

一年一度的520又來了,有女朋友的程序員又來殺狗了。但是不要怕,這幾天我每天來給你們new幾個女朋友

正文

但是,女盆友也不是白給的,需要你自己答出來哦。

		girlFriend girlFriend1=new girlFriend();
        String girl1="迪麗熱巴";
        girlFriend1.setName(girl1);
        System.out.println("第一天我的女朋友是:"+girlFriend1.getName());

沒錯控制檯輸出:第一天我的女朋友是:迪麗熱巴

第二天到了,咱們今天玩刺激一點的,new一個多人運動出來

		girlFriend girlFriends=new girlFriend();
        String[] girls=new String[]{"趙麗穎","Angelababy"};
        girlFriends.setGirlsName(girls);
        System.out.println("第二天我的女朋友們分別是:"+girlFriends.getGirlsName());

沒錯控制檯輸出:第二天我的女朋友們分別是:趙麗穎 Angelababy

第三天到了,咱不如把趙麗穎換成鄭爽?說來就來

 		girls[0]="鄭爽";
        System.out.println("第三天我的女朋友們分別是:"+girlFriends.getGirlsName());

給個小提醒,我這裏並沒有寫girlFriends.setGirlsName(girls);哦。
所以問題就來了,你這時候的女朋友們是趙麗穎 Angelababy還是鄭爽 Angelababy呢?

如果有疑惑,我們看控制檯輸出:第三天我的女朋友們分別是:鄭爽 Angelababy

這裏開始答錯的統統去再看一遍java核心技術第一版再看一遍方法,居然自己的女朋友名字都叫錯了,您配嗎?
在這裏插入圖片描述
不要有疑惑,我直接說結論:

基本類型參數的傳遞,是調用方值的複製。雙方各自的後續修改,互不影響。

引用類型參數的傳遞,調用方的變量,和接收方的參數變量,指向的是同一個對象(同一塊地址)。雙方任意一方對這個對象的修改,都會影響對方(因爲指向同一個對象嘛)。

String在MSDN裏面也算引用類型,但是!!!編譯器做出了處理,無法表現出引用類型的特性

這裏我引用大佬的文章,分別解釋了基本數據類型和引用類型有哪一些:
https://www.cnblogs.com/maskwolf/p/9972982.html
在這裏插入圖片描述
在這裏插入圖片描述

我們看下面代碼很容易瞭解到:引用類型參數的特性

        String[] girls=new String[]{"趙麗穎","Angelababy"};
        
        //我們把girls copy過來,其實這裏girlsCopy並沒有開闢新的內存,還是指向girls的
        String[] girlsCopy=girls;
        
        //所以在這裏輸出地址值的時候,兩者相等
        System.out.println(girls);
        System.out.println(girlsCopy);
        
        //當我們更改girls[0]的值的時候,其實因爲girlsCopy指向girls,所以girlsCopy的值也改變了,但是地址值永遠不會改變
        girls[0]="鄭爽";
        if(girls==girlsCopy){
            System.out.println("girls=girlsCopy");
            for (int i = 0; i < 2; i++) {
                System.out.println("girls["+i+"]="+girls[i]+"   girlsCopy["+i+"]="+girlsCopy[i]);
            }
        }else {
            System.out.println("girls!=girlsCopy");
        }

控制檯:

[Ljava.lang.String;@10f87f48
[Ljava.lang.String;@10f87f48
girls=girlsCopy
girls[0]=鄭爽   girlsCopy[0]=鄭爽
girls[1]=Angelababy   girlsCopy[1]=Angelababy

我相信看到這裏,你就很容易想明白其中的套路

結尾

520這一天看到朋友圈的其他程序員都在秀自己的女朋友,而我只能在這裏new對象,眼淚又不爭氣的從眼角流了下來。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章