Java 數組對象

數組是一種可以經過位置索引,快速、隨機地存取其中元素的集合數據結構。java

對象類型

In the Java programming language, arrays are objects (§4.3.1), are dynamically created, and may be assigned to variables of type Object (§4.3.2). All methods of class Object may be invoked on an array.

注意:數組元素(內容)自己能夠是基本數據類型或對象引用類型,可是數組變量(引用)則指向數組對象。數組對象並不是是從某個類實例化而來,而是由 JVM 直接建立的。所以查看數組對象類名的時侯會發現都是一些奇怪的相似於 "[I" 這樣的字符。數組

數組對象的父類是 java.lang.Object,因此能夠調用 Object 類中的全部方法如 toString()。bash

實現以下:數據結構

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

每一個數組對象對應的類,能夠經過 RTTI(Run-Time Type Information)於運行時檢查code

char[] c = {'a', 'b', 'c'} 
int[] i = {1, 2, 3}
long[] l = {1l, 2l, 3l}
float[] i = {1f, 2f, 3f}
String[] s={"aa","bb","cc"};

System.out.println(c);
System.out.println(i);
System.out.println(l);
System.out.println(f);
System.out.println(s);

Output:orm

[C
[I
[J
[F
[Ljava.lang.String

數組對象能夠獲取長度屬性(只讀) length。
數組是不可變的,指的就是數組長度內的內存空間。數組元素的內容容許經過賦值形式改變,而對數組變量賦值則會指向不一樣數組對象。對象

有關內存分配:
聲明數組只是分配固定的引用空間大小,因爲還沒有賦值不指向任何數組對象。
數組對象必定存放在堆上,數組變量則不必定。無論是基本類型變量,仍是對象引用類型變量,只要是局部變量就存放在上,對象引用類型變量指向的對象則必定存放在上。索引

數組使用

Java 是一門強類型、靜態類型語言,編譯器會根據數組的聲明類型防止放入錯誤類型。內存

數組初始化方式:get

case 1:

int[] arr = {1, 2, 3};

case 2:

int[] arr = new int[]{1, 2, 3};

case 3:

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

bad case 1: 不能在給定初始值的同時給定長度

int[] arr = new int[3]{1, 2, 3};

初始值已經決定數組長度,若再給出長度限制,二者不一致 Java 將沒法正常工做。

咱們經過數組變量結合位置索引,便可操做數組中的元素。

相關文章
相關標籤/搜索