天天看點

JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想

我們繼續java之旅
數組就是同一種類型資料的集合,就是一個容器

數組的好處:可以自動給數組中的元素從0開始編号,友善操作這些元素

數組的格式
java程式在運作時,需要在記憶體中配置設定空間,為了提高效率,有對空間進行不同區域的劃分,因為每一片區域都有特定的處理資料方式和記憶體記憶體管理方式

棧記憶體:用于存儲局部變量,當資料使用完,所占空間會自動釋放

棧記憶體

數組和對象,通過new建立的執行個體都放在堆記憶體中

每一個實體都有記憶體位址值

實體中的變量都有預設的初始值

實體不再被使用,會在不确定的時間被垃圾回收器回收

方法區

本地方法,寄存器

數組還有另外一種格式
我們把他叫做靜态初始化
數組的操作,我們先看一個最簡單的,直接循環
得到的結果
JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想
我們再來寫個小例子
我們的運作結果
JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想
現在我們有一個需求就是不要最後面的逗号,我們該怎麼去做?其實就是判斷
隻要我的長度-1 再減去你的循環數是0,說明是最後一個,那就不加逗号,輸出的結果
擷取最值就是最大值,最小值之類的,我們一個個來擷取
輸出的結果‘
JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想
這個就比較有意思了
拿着每一個元素都比較一遍,然後從大到小排列
JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想
我們再來一個更好用的
這個比較邏輯就更加效率了,相鄰的兩個元素進行比較,換位置
這樣我們也可以輸出
JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想
說完了數組,我們又來了一個二維數組,數組中的數組,其實就是一個裝數組類型的數組,這樣說就比較清晰了 格式

int [] [] arr = new int [3] [2] ;

int [] [] arr = new int [ ] [2] ;

這是個小知識點,我們簡單說一下
輸出的結果
JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想JAVA之旅(三)——數組,堆棧記憶體結構,靜态初始化,周遊,最值,選擇/冒泡排序,二維數組,面向對象思想
我們來個小練習 (選擇題)int [] x,y [] ; //x是一維 y是二維

a.x[0] = y; //error

b.y[0]= x; //yes

c.y[0][0] = x; //error

d.x[0][0] = y; // error

e.y[0][0] = x[0]; //yes

f.x=y //error

這篇博文其實到這裡本該結束的,為了埋個伏筆,我再加點面向對象的思想,我們先了解一下面向對象的思想

面向對象是相對于面向過程而已

面向對象和面向過程都是一種思想

面向過程

強調的是功能行為

面向對象

講功能封裝進對象,強調具備了功能的對象

面向對象是基于面向過程的

這麼說可能有點籠統,我們舉個例子來說明 還記得那個故事嗎,把大象放進冰箱裡,這裡分幾步?

第一步:打開冰箱門

第二步:把大象放進去

第三步:關閉冰箱門

這個行為藝術,叫做過程,這個行為過程,我很強調過程,不管是大象還是小象,無所謂,打開,放進去,關上,這就是面向過程 而面向對象 隻需要我們封裝這個冰箱,那麼那就有打開,存儲,和關閉的功能,那麼我們作用的就是冰箱這個對象了,我們直接面向他 這樣說,是不是有點空洞?我下篇部落格會繼續深入,生動的把這個思想給描繪出來,盡情期待!