Java深刻數組

數組是一種引用數據類型,數組引用變量只是一個引用,數組元素和數組變量在內存裏是分開存放的。java

1.內存中的數組,數組引用變量只是一個引用,這個引用能夠指向任何有效的內存,只有當該引用指向有效的內存後,才能經過數組變量來訪問數組元素。與全部的引用變量相同的是,引用變量是訪問真實對象的根本方式。也就是說,若是但願在程序中訪問數組對象的自己,則只能經過這個數組的引用變量來訪問它。其實實際的數組對象被儲存儲在堆內存(heap)裏面,若是引用該數組對象的數組引用變量是一個局部變量,那麼它被存儲在棧(stack)內存中。一個方法執行時,每一個方法都會創建本身的內存棧,這個方法的變量都會存放在這個內存棧中,這個方法結束內存也就銷燬。在程序中建立一個對象時,這個對象將被保存在運行時數據區中,以便反覆利用,這個運行時數據區就是堆內存。堆內存的對象不隨方法結束而銷燬,只有當一個對象沒有任何引用變量引用它時,系統的垃圾回收器纔會在合適時候回收它。數組

2.基本類型數據的初始化,先將數組變量存在棧中,當執行賦值操做時,再將數組中的每個元素存放在堆中。引用類型數組的初始化,先將數組變量放入棧中,再將數組的引用放入堆內存中,再將引用的變量放入棧中,再將引用變量的對象放入堆內存中,最後咱們將堆內存中的真實對象放入數組的引用中,因此咱們獲得的對象變量的引用和數組對象的引用相同。工具

3.沒有多維數組,java語言裏提供了支持多維數組的語法,但若是從數組的底層機制上來看,二維數組其實就是一維數組,多維數組也能夠當作一維數組。orm

4.java 8加強的工具類:Arrays這個類裏面包含了以下幾個static修飾的方法(static修飾的方法能夠直接經過類名調用)。對象

int binarySearch(type[] a,type key):使用二分法查詢key元素值在a數組中出現的索引;若是a數組中不包含key元素的值,則返回負值。調用該方法要求數組元素已經按升序排列,這樣才能獲得正確的結果。排序

int binarySearch(type[] a, int fromIndex,int toIndex,type key):這個方法與前一個方法相似,但它只搜索數組中fronIndex到toIndex索引的元素。調用該方法時要求數組中的元素已經按照升序排列,這樣才能獲得正確的結果。索引

type[] copyOf(type[] orginal,int length):這個方法將會把original數組複製成一個新數組,其中length是新數組中的長度。內存

type[] copyOfRange(type[] original,int form,int to):這個方法和前面的方法類似。字符串

boolean equals(type[] a,type[] a2):若是數組a和數組a1的長度相等,並且a數組和a1數組的數組元素也一一相同,該方法將返回true。form

void fill(type[] a,type val):將數組a中的全部元素都賦值爲val。

void fill(type[] a,int formIndex,int toIndex):這個方法與前面的方法做用相同。

void sort(type[] a):該方法對a數組的數組進行排序。

void sort(type[] a,int formIndex,int toIndex):該方法與前面的方法相似。

String toString(type[] a):該方法將一個數組轉換成一個字符串。該方法按順序把多個數組元素連在一塊兒,多個數組元素使用英文逗號 和空格隔開。

另外在System類裏面也包含了一個static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)方法,該方法能夠將src數組裏的元素賦值給dest數組的元素,其中serPos指定從數組的幾個元素賦值,length參數指定將src數組的多少個元素賦值給dest數組元素。

相關文章
相關標籤/搜索