java學習筆記之基礎語法(二)
1.數組:
概念:同一種類型數據的集合,其實,數組就是一個容器
優點:可以方便的對其進行操作,編號從0開始,方便操作這些元素。
2,數組的格式
元素類型[]數組名=new 元素類型[數組元素個數];
int [] arr = new int[5];
int []arr = new int[]{1,2,3};
int []arr={1,2,3};
3.數組的內存分配及特點
int []arr = new int[4];
棧內存中定義一個數組變量,在堆內存中是實體內容,一排連續的地址。
4.java程序在運行時,需要在內存中分配空間,為了提高效率,有對其進行了區域劃分,每一塊有特定的處理數據的方式和內存管理方式
內存劃分為:寄存器、本地方法區、方法區、棧內存區、對內存區。
棧內存:用於存儲局部變量,當變量所屬的作用域一旦結束,所占空間就會被釋放。
堆內存:數組和對象,通過new創建一個實例放入對中,每一個實例一個內存地址值。
實體中的變量都有默認的初始化值,根據數據類型的不同而不同,正數的數據類型是0,小數的類型是0.0或0.0f,boolean類選哪個是false。
如果將數組中的引用實體設置為null,那麽就表示實體不被引用,那麽會在不確定的時間內被內存回收機制所回收。
5.數組的常見操作。
(1)對數組操作的動作就是存取,核心思想就是對角標的操作。
首先,遍歷打印數組元素,遍歷的時候,數組的長度是Array1.length
(2)獲取數組的值(最大、最小)
實現方法:
需要比較,並定義變量記錄住每次比較後的較大值。
對數組中的元素進行遍歷取出,和變量中記錄的元素進行比較,如果遍歷到變量中進行比較,記住最大的值。
變量結果,該記錄就是最大值。
一句話總結:假設一個最大值,然後變量數組,讓其和任意一個數據進行比較,如果比它大就進行替換,假如小,就不做任何操作,進行下一次數據操作。
實現代碼:就是將數據的值進行記錄,還有一種是對角標進行記錄。
(3)排序:
1)選擇排序
思路:首先得到數組的第一個元素,依次與其他數據進行比較,如果第一個元素大於剩下 的元素,就互換內容。
經過一次比較之後,就可以得到第一個數據為最小的數據,然後將第二個元素,進行下一次的數據比較。
一次類推,直到最後一個元素。
2)冒泡排序
思路:首先在第一次排序中,數組的第一個元素到倒數第二個元素依次與其左邊元素進行比較,如果左邊大於左邊元素,就互換。
經過一次比較,最大的元素就已經存入到數組最右邊的節點中
第二論排序則是從第一個元素到倒數第三個元素依次與其右邊的元素進行比較,如果左邊的元素大於右邊的元素,那麽就互換。
依次下去,就可將所有 的數據比較而結束。
當然上面的排序可以直接的調用工具類來完成操作。
(4)折半查找
一般的數據,如果沒有順序,那麽就只有使用遍歷的方法進行數據的查找,如果是有順序 的時候就可以使用折半查找的方法了‘。
折半查找的實現思路:
1,設置三個變量:min、max、mid,min初始為0,max為數組的最大角標,mid是(max+min)/2.
2.查看mid角標的元素是否與帶查找的數據值相等,如果相等就可以返回數據
3.如果待查找小於mid的元素值,那麽就說明需要在min和mid之間查找數據,如果大於mid的值就需要在max和mid之間找值
4.如果數組中找不到待查找的元素,那麽就返回-1.
6.數組可以存什麽:可以存基本數據類型和對象數據類型。
java學習筆記之基礎語法(二)