天天看點

【Java SE】Day05數組

一、數組的定義和通路

1、初始化

  • 動态new int[10];--預設值
  • 靜态new int[]{1,2,3};,省略為{1,2,3};

2、通路

長度arr.length屬性(數組的屬性)

列印數組名,得到的是記憶體位址哈希值

二、數組原理記憶體圖

1、概述:程式需要在記憶體中 運作,結束後清空記憶體,故JVM需要對記憶體進行空間的配置設定和管理

2、記憶體劃分 

  • 堆記憶體:new的對象
  • 方法區:存放位元組碼檔案
  • 方法棧:調用的方法在棧中執行
  • 寄存器:供CPU使用
  • 本地方法棧:JVM使用作業系統時使用

三、數組的常見操作

1、常見異常及解決

  • 數組越界:ArrayIndexOutOfBoundsException
  • 空指針異常:NullPointerException,直接等于了null,需要進行new動态初始化

2、數組周遊

3、擷取最大值

4、數組反轉※

方法:定義前後雙指針,滿足條件時交換

四、數組作為方法參數和傳回值

1、作為方法的參數

  • 傳遞的是位址
  • 方法的三要素:方法名、傳回值、參數清單

2、作為方法的傳回值

方法有多個傳回值時,可以通過數組進行傳回

3、方法參數類型的差別

  • 基本類型:傳遞的是資料值
  • 引用類型:傳遞的是位址(數組是new出來的對象,new出來的一般都是是引用類型)