1. 可變參數(shù)
- 可接收多個(gè)同類型實(shí)參坞淮,本質(zhì)是一個(gè)數(shù)組
- 語(yǔ)法:數(shù)據(jù)類型... 形參名
- 必須定義在參數(shù)列表的最后,且一個(gè)方法只能有一個(gè)可變參數(shù)
Class<?>... parameterTypes
Class<?>[] types
可變參數(shù)和數(shù)組作為方法參數(shù)時(shí)的區(qū)別:
- 可變參數(shù)只能有一個(gè)夭谤,數(shù)組可以有多個(gè)
- 可變參數(shù)只能定義在參數(shù)列表的末尾搔啊,數(shù)組可以在任何位置
- 可變參數(shù)可以傳數(shù)組、null、0個(gè)參數(shù)强缘、一到多個(gè)參數(shù);數(shù)組可以傳數(shù)組引用不傅、數(shù)組對(duì)象旅掂、null
2. 數(shù)組
- 特點(diǎn):一段連續(xù)的內(nèi)存空間,相同數(shù)據(jù)類型访娶,可根據(jù)索引查詢
- 數(shù)組創(chuàng)建
- 數(shù)組擴(kuò)容
- 數(shù)組復(fù)制
2.1 數(shù)組內(nèi)存分析
數(shù)組屬于引用類型商虐,存儲(chǔ)在堆中,棧中存儲(chǔ)的是堆中數(shù)組的引用(地址)
2.2 數(shù)組創(chuàng)建
方式一:先聲明,再分配空間
int[] values;
values = new int[10];
方式二:聲明并分配空間
int[] values = new int[10];
values[0] = 1;
方式三:聲明并賦值(簡(jiǎn) / 繁)
int[] values = {1, 2};
int[] values = new int[] {1, 2};
2.3 數(shù)組的復(fù)制
int[] values = {11, 22, 3, 4, 5};
// more是升序
Arrays.sort(values);
System.out.println(Arrays.toString(values));
System.arraycopy(array, 0, array2, 2, 2);
2.5 數(shù)組倒置
/**
* 數(shù)組倒置:
* 第一個(gè)數(shù)與倒數(shù)第一個(gè)數(shù)交換
* 第二個(gè)數(shù)與倒數(shù)第二個(gè)數(shù)交換
* 以此類推
*
* 交換的次數(shù)看數(shù)量是奇數(shù)還是偶數(shù)
*/
public void inverse() {
int[] nums = {1, 2, 3, 4, 5};
for (int i = 0; i < nums.length / 2; i++) {
int temp = nums[i];
nums[i] = nums[nums.length - 1 - i];
nums[nums.length - 1 -i] = temp;
}
System.out.println(Arrays.toString(nums));
}
2.6 main()
- 自 JDK1.5 引入動(dòng)態(tài)參數(shù)后称龙,String[] 數(shù)組也可以使用String... args來(lái)實(shí)現(xiàn)
3. 二維數(shù)組
概念:一維數(shù)組中的一維數(shù)組留拾;數(shù)組中的元素還是數(shù)組
查找元素需要兩個(gè)下標(biāo), X[n][m]
第 n 行 第 m 列
int [][] nums = new int [3][5];
nums.length // 3
nums[0].length // 5
二維數(shù)組的遍歷
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {}
}
3.1 二維數(shù)組的內(nèi)存分配
高維數(shù)組中的每一個(gè)元素,保存了低維數(shù)組的地址
例如:訪問(wèn) array[0] 等價(jià)于在訪問(wèn) 0x0000A111
3.1 N 維數(shù)組
- N 維數(shù)組有 n 個(gè) []
4. 地址的復(fù)制
- 基本數(shù)據(jù)類型變量存儲(chǔ)值
- 引用數(shù)據(jù)類型變量存儲(chǔ)地址值
- num = newNum, 將新數(shù)組的地址復(fù)制給 num, 后續(xù)操作 num 時(shí)鲫尊,相當(dāng)于操作 newNum
4.1 數(shù)組類型參數(shù)
- 基本數(shù)據(jù)類型傳遞:值傳遞痴柔。一方改變不會(huì)影響另一方
- 引用數(shù)據(jù)類型傳遞:值傳遞(地址值)。一方改變影響另一方