Java的面向?qū)ο缶幊?/a>">Java的面向?qū)ο缶幊?/a>
659
2022-05-28
數(shù)組原理
內(nèi)存概述
Java 虛擬機(jī)的內(nèi)存劃分
數(shù)組在內(nèi)存中的存儲(chǔ)
兩個(gè)數(shù)組的內(nèi)存圖
兩個(gè)變量指向一個(gè)數(shù)組
內(nèi)存概述
內(nèi)存是計(jì)算機(jī)中的重要原件, 也是臨時(shí)存儲(chǔ)區(qū)域, 作用是運(yùn)行程序. 我們編寫(xiě)的程序是存放在硬盤(pán)中的, 但是在硬盤(pán)中的程序是不會(huì)運(yùn)行的, 必須放進(jìn)內(nèi)存中才能運(yùn)行, 運(yùn)行完畢后會(huì)清空內(nèi)存.
Java 虛擬機(jī)要運(yùn)行程序, 必須要對(duì)內(nèi)存進(jìn)行空間的分配和管理.
Java 虛擬機(jī)的內(nèi)存劃分
Java 虛擬機(jī)為了提高效率, 就對(duì)空間進(jìn)行了不同區(qū)域的劃分, 因?yàn)槊恳黄瑓^(qū)域都有特定的處理數(shù)據(jù)方式和內(nèi)存管理方式.
數(shù)組在內(nèi)存中的存儲(chǔ)
public static void main(String[] args) { int[] arr = new int[3]; System.out.println(arr); // [I@5f150435 }
1
2
3
4
以上方法執(zhí)行, 輸出結(jié)果是 “[I@5f150435”, 這個(gè)是什么呢?
是數(shù)組在內(nèi)存中的地址. new 出來(lái)的內(nèi)容, 都是在堆內(nèi)存中存儲(chǔ)的, 而方法中的變量 arr 保存的是數(shù)組地址. 所以, 輸出arr[0],就會(huì)輸出arr保存的內(nèi)存地址中數(shù)組中0索引上的元素.
兩個(gè)數(shù)組的內(nèi)存圖
public static void main(String[] args) { int[] arr = new int[3]; int[] arr2 = new int[2]; System.out.println(arr); System.out.println(arr2); }
1
2
3
4
5
6
兩個(gè)變量指向一個(gè)數(shù)組
public static void main(String[] args) { // 定義數(shù)組,存儲(chǔ)3個(gè)元素 int[] arr = new int[3]; // 數(shù)組索引進(jìn)行賦值 arr[0] = 5; arr[1] = 6; arr[2] = 7; // 輸出3個(gè)索引上的元素值 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); // 定義數(shù)組變量arr2,將arr的地址賦值給arr2 int[] arr2 = arr; arr2[1] = 9; System.out.println(arr[1]); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Java 數(shù)據(jù)結(jié)構(gòu)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。