2020-9-23Java學習記錄
Java陣列
Java語言中的陣列是一種引用資料型別。不屬於基本資料型別。陣列的父類是Object
陣列實際上是一個容器,可以同時容納多個元素。(陣列是一個資料的集合)
陣列當中可以儲存基本資料型別的資料,也可以儲存引用資料型別的資料。
陣列因為是引用型別,所以陣列物件是堆記憶體當中。(陣列是儲存在堆當中)
陣列當中如果儲存的是“java物件”的話,實際上儲存的是物件“引用(記憶體地址)”
陣列一旦建立,在java中規定,長度不可變。(陣列長度不可變)
陣列的分類:一維陣列,二維陣列,三維陣列,三維陣列,多維陣列…(一組陣列較多,二維陣列偶爾使用!)
所有的陣列物件都有Length屬性(java自帶的),用來獲取陣列中的元素個數
所有的陣列都是拿“第一個小方框的記憶體地址”作為整個陣列物件的記憶體地址(陣列中首元素的記憶體地址作為整個陣列物件的記憶體地址)
陣列這種資料結構的優點和缺點是什麼?
優點:查詢/查詢/檢索某個下標上的元素時效率極高。可以說是查詢效率最高的一個資料結構。為什麼?
第一:每一個元素的記憶體地址在空間儲存上是連續的
第二:每一個元素型別相同,所以佔用空間大小一樣
第三:知道第一個元素的記憶體地址,知道每一個元素的佔用空間大小,又知道下標,所以通過一個數學表示式就可以計算出某個下標上元素的記憶體地址。直接通過記憶體地址定位元素,所以陣列的檢索效率是最高的。
陣列儲存100個元素,或者儲存100萬個元素,在元素查詢/檢索方面,效率是相同的,因為陣列中元素查詢的時候不會一個一個找,是通過數學表示式計算出來的。(算一個記憶體地址,直接定位)
相關文章
- 學習記錄
- 【每日學習記錄】使用錄影裝置記錄每天的學習
- Docker學習記錄Docker
- JAVA學習記錄Java
- hadoop學習記錄Hadoop
- langchain學習記錄LangChain
- JQuery學習記錄jQuery
- 2024.4.15學習記錄
- 學習記錄APPAPP
- activiti學習記錄
- fastadmin 學習記錄AST
- larabbs 學習記錄
- Tableau學習記錄
- python學習記錄Python
- socket學習記錄
- Eureka學習記錄
- Mybatis學習記錄MyBatis
- 記錄學習PromisePromise
- windbg學習記錄
- MySQL學習記錄MySql
- 【記錄】MySQL 學習筆記MySql筆記
- [記錄] MySQL 學習筆記MySql筆記
- Flutter學習記錄(一)Dart學習FlutterDart
- angular 19 學習記錄Angular
- 機器學習記錄機器學習
- Vue 學習記錄一Vue
- Vue 學習記錄二Vue
- Vue 學習記錄四Vue
- Vue 學習記錄三Vue
- python學習記錄5Python
- Scala學習記錄01
- python學習記錄7Python
- Lua學習記錄 20201027
- c++學習記錄C++
- Spring學習記錄1Spring
- rust 學習記錄(一)Rust
- python學習記錄20201212Python
- iOS KVO學習記錄iOS