摘要:數組元素的內容允許通過賦值形式改變,而對數組變量賦值則會指向不同數組對象。數組對象一定存放在堆上,數組變量則不一定。我們通過數組變量結合位置索引,即可操作數組中的元素。
數組是一種能夠通過位置索引,快速、隨機地存取其中元素的集合數據結構。
對象類型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()。
實現如下:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
每個數組對象對應的類,可以通過 RTTI(Run-Time Type Information)于運行時檢查
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:
[C [I [J [F [Ljava.lang.String
數組對象可以獲取長度屬性(只讀) length。
數組是不可變的,指的就是數組長度內的內存空間。數組元素的內容允許通過賦值形式改變,而對數組變量賦值則會指向不同數組對象。
有關內存分配:
聲明數組只是分配固定的引用空間大小,由于尚未賦值不指向任何數組對象。
數組對象一定存放在堆上,數組變量則不一定。不管是基本類型變量,還是對象引用類型變量,只要是局部變量就存放在棧上,對象引用類型變量指向的對象則一定存放在堆上。
Java 是一門強類型、靜態類型語言,編譯器會根據數組的聲明類型防止放入錯誤類型。
數組初始化方式:
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 將無法正常工作。
我們通過數組變量結合位置索引,即可操作數組中的元素。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71799.html
摘要:是完全面向對象的語言,對象具有狀態行為和標識。類一一是具有共同特征和行為的一類事物的統稱。受保護的,對同一包內的類和所有子類可見。一種通用的內存池,用于存放所有對象。類級變量又稱全局級變量或靜態變量,需要使用關鍵字修飾。 java語言的基本特點 java語言是面向對象的高級程序設計語言,它是編譯型的語言,Java語言不使用指針,并提供了自動的垃圾回收機制,使得程序員不必為內存管理而擔...
摘要:堆內存主要作用是存放運行時創建的對象。堆內存用來存放由創建的對象和數組,在堆中分配的內存,由虛擬機的自動垃圾回收器來管理。這也是比較占內存的原因,實際上,棧中的變量指向堆內存中的變量,這就是中的指針 堆:(對象) 引用類型的變量,其內存分配在堆上或者常量池(字符串常量、基本數據類型常量),需要通過new等方式來創建。 堆內存主要作用是存放運行時創建(new)的對象。(主要用于存放對象,...
摘要:第三階段常見對象的學習集合框架概述和集合的遍歷一集合框架的概述集合的由來如果一個程序只包含固定數量的且其生命周期都是已知的對象,那么這是一個非常簡單的程序。進而它們的遍歷方式也應該是不同的,最終就沒有定義迭代器類。 第三階段 JAVA常見對象的學習 集合框架概述和集合的遍歷 (一) 集合框架的概述 (1) 集合的由來 如果一個程序只包含固定數量的且其生命周期都是已知的對象,那么這是一...
摘要:不相等的對象要具有不相等的哈希碼為了哈希表的操作效率,這一點很重要,但不是強制要求,最低要求是不相等的對象不能共用一個哈希碼。方法和方法協同工作,返回對象的哈希碼。這個哈希碼基于對象的身份生成,而不是對象的相等性。 本文面向 剛學完Java的新手們。這篇文章不講語法,而是一些除了語法必須了解的概念。 將要去面試的初級工程師們。查漏補缺,以免遭遇不測。 目前由于篇幅而被挪出本文的知識...
閱讀 1538·2021-11-04 16:10
閱讀 2774·2021-09-30 09:48
閱讀 2839·2019-08-29 11:31
閱讀 1578·2019-08-28 18:22
閱讀 3225·2019-08-26 13:44
閱讀 1319·2019-08-26 13:42
閱讀 2845·2019-08-26 10:20
閱讀 754·2019-08-23 17:00