摘要:數(shù)組的復(fù)制為了得到兩個(gè)數(shù)組元素的每個(gè)值都相同的元素,我們可以使用提供的來實(shí)現(xiàn),具體如下復(fù)制數(shù)組顯然,上述代碼執(zhí)行完數(shù)組的值為,如果間接修改了數(shù)組中數(shù)組元素的值,則完數(shù)組的值為,這是結(jié)合上下文獲得的結(jié)果。
原文發(fā)于微信公眾號(hào)jzman-blog,歡迎關(guān)注交流。
本來打算溫習(xí)一下注解方面的內(nèi)容作為今天的推送,但是來不及寫了,那就一起來看一下數(shù)組,數(shù)組是用來存放一組具有相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),通過下標(biāo)來訪問數(shù)組中的元素。
數(shù)組的定義數(shù)組的定義主要有兩種,一種是先指定數(shù)組的大小,然后根據(jù)數(shù)組元素下標(biāo)進(jìn)行賦值,另一種是直接創(chuàng)建一個(gè)數(shù)組并進(jìn)行賦值,具體如下:
//1.定義大小為10的數(shù)組 int[] arrayA = new int[10]; int arrayB[] = new int[10]; arrayA[0] = 1; arrayB[1] = 2; //2.定義數(shù)組并賦值 int[] arrayC = {1,2,3,4,5};數(shù)組本質(zhì)
Java 中的數(shù)組實(shí)際上是一個(gè)類,因此兩個(gè)數(shù)組變量可以指向同一個(gè)數(shù)組,觀察如下代碼:
int[] arrayD = {1,1,1}; int[] arrayE = arrayD; arrayD[0] = 2; System.out.println(arrayE[0]);
顯然,執(zhí)行上述代碼結(jié)果肯定是 2,上述代碼中,將數(shù)組 arrayD 的值指向 arrayE,其本質(zhì)是兩個(gè)數(shù)組 arrayD、arrayE 指向了同一塊數(shù)組空間,當(dāng)修改了 arrayD 中某一元素的值,相應(yīng)的 arrayE 中對(duì)應(yīng)元素值也發(fā)生了變化,具體如下圖所示:
注意:當(dāng)數(shù)組作為方法的參數(shù)傳遞時(shí),相當(dāng)于傳遞的是數(shù)組的引用,因此在方法中對(duì)數(shù)組的操作也會(huì)影響到原來的數(shù)組,這一點(diǎn)非常重要。
數(shù)組的復(fù)制為了得到兩個(gè)數(shù)組元素的每個(gè)值都相同的元素,我們可以使用 Java 提供的 arraycopy() 來實(shí)現(xiàn),具體如下:
int[] arrayD = {1,1,1}; int[] arrayF = new int[3]; /復(fù)制數(shù)組 System.arraycopy(arrayD, 0, arrayF, 0, 3); System.out.println(Arrays.toString(arrayF));
顯然,上述代碼執(zhí)行完數(shù)組 arrayF 的值為 1、1、1,如果間接修改了數(shù)組 arrayD 中數(shù)組元素的值,則完數(shù)組 arrayF 的值為 2、1、1,這是結(jié)合上下文獲得的結(jié)果。
下面順便說一下 arraycopy 方法參數(shù)的含義,具體如下:
/** * 復(fù)制數(shù)組 * @param src:原數(shù)組 * @param srcPos:原數(shù)組開始被復(fù)制的位置 * @param dest:目標(biāo)數(shù)組 * @param destPos:目標(biāo)數(shù)組開始的位置 * @param length:目標(biāo)數(shù)組的長度 */ public static void arraycopy?(Object src, int srcPos, Object dest, int destPos, int length) { }
數(shù)組中好像要注意的東西也就這么多了,當(dāng)然還有其他關(guān)于操作數(shù)組的 API ,上面遇到數(shù)組之間的賦值影響了原來數(shù)組的值,這也是之前自己沒有注意到的,今天就寫這么多。
可以選擇關(guān)注微信公眾號(hào):jzman-blog 獲取最新更新,一起交流學(xué)習(xí)!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74156.html
??前面的話?? 大家好!這是Java基礎(chǔ)知識(shí)與數(shù)據(jù)結(jié)構(gòu)博文的導(dǎo)航帖,收藏我!學(xué)習(xí)Java不迷路! ?博客主頁:未見花聞的博客主頁 ?歡迎關(guān)注?點(diǎn)贊?收藏??留言? ?本文由未見花聞原創(chuàng),CSDN首發(fā)! ?首發(fā)時(shí)間:?2021年11月11日? ??堅(jiān)持和努力一定能換來詩與遠(yuǎn)方! ?參考書籍:?《Java核心技術(shù)卷1》,?《Java核心技術(shù)卷2》,?《Java編程思想》 ?參考在線編程網(wǎng)站:?牛...
摘要:是現(xiàn)在廣泛流行的代從開始學(xué)習(xí)系列之向提交代碼掘金讀完本文大概需要分鐘。為了進(jìn)行高效的垃圾回收,虛擬機(jī)把堆內(nèi)存劃分成新生代老年代和永久代中無永久代,使用實(shí)現(xiàn)三塊區(qū)域。 React Native 開源項(xiàng)目 - 仿美團(tuán)客戶端 (Android、iOS 雙適配) - Android - 掘金推薦 React Native 學(xué)習(xí)好項(xiàng)目,仿照美團(tuán)客戶端... 極簡 GitHub 上手教程 - 工具...
摘要:我的是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)。因?yàn)槲倚睦砗芮宄业哪繕?biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來的學(xué)習(xí)計(jì)劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)offer。然后五月懷著忐忑的心情開始了螞蟻金...
摘要:注解功能編譯器可以使用注解來檢測錯(cuò)誤和取消警告使用注解可以生成特定代碼,如使用注解簡化等某些注解可以在運(yùn)行時(shí)進(jìn)行檢查和操作。 原文發(fā)于微信公眾號(hào)jzman-blog,歡迎關(guān)注交流。 Java 注解(Annotation)又稱之為 Java 標(biāo)注、元數(shù)據(jù),是 Java 1.5 之后加入的一種特殊語法,通過注解可以標(biāo)注 Java 中的類、方法、屬性、參數(shù)、包等,可以通過反射原理對(duì)這些元數(shù)據(jù)...
閱讀 768·2021-09-26 09:55
閱讀 2058·2021-09-22 15:44
閱讀 1473·2019-08-30 15:54
閱讀 1324·2019-08-30 15:54
閱讀 2668·2019-08-29 16:57
閱讀 517·2019-08-29 16:26
閱讀 2490·2019-08-29 15:38
閱讀 2122·2019-08-26 11:48