摘要:數(shù)組元素的內(nèi)容允許通過賦值形式改變,而對(duì)數(shù)組變量賦值則會(huì)指向不同數(shù)組對(duì)象。數(shù)組對(duì)象一定存放在堆上,數(shù)組變量則不一定。我們通過數(shù)組變量結(jié)合位置索引,即可操作數(shù)組中的元素。
數(shù)組是一種能夠通過位置索引,快速、隨機(jī)地存取其中元素的集合數(shù)據(jù)結(jié)構(gòu)。
對(duì)象類型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.
注意:數(shù)組元素(內(nèi)容)本身可以是基本數(shù)據(jù)類型或?qū)ο笠妙愋?,但是?shù)組變量(引用)則指向數(shù)組對(duì)象。數(shù)組對(duì)象并非是從某個(gè)類實(shí)例化而來,而是由 JVM 直接創(chuàng)建的。因此查看數(shù)組對(duì)象類名的時(shí)侯會(huì)發(fā)現(xiàn)都是一些奇怪的類似于 "[I" 這樣的字符。
數(shù)組對(duì)象的父類是 java.lang.Object,所以可以調(diào)用 Object 類中的所有方法如 toString()。
實(shí)現(xiàn)如下:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
每個(gè)數(shù)組對(duì)象對(duì)應(yīng)的類,可以通過 RTTI(Run-Time Type Information)于運(yùn)行時(shí)檢查
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
數(shù)組對(duì)象可以獲取長度屬性(只讀) length。
數(shù)組是不可變的,指的就是數(shù)組長度內(nèi)的內(nèi)存空間。數(shù)組元素的內(nèi)容允許通過賦值形式改變,而對(duì)數(shù)組變量賦值則會(huì)指向不同數(shù)組對(duì)象。
有關(guān)內(nèi)存分配:
聲明數(shù)組只是分配固定的引用空間大小,由于尚未賦值不指向任何數(shù)組對(duì)象。
數(shù)組對(duì)象一定存放在堆上,數(shù)組變量則不一定。不管是基本類型變量,還是對(duì)象引用類型變量,只要是局部變量就存放在棧上,對(duì)象引用類型變量指向的對(duì)象則一定存放在堆上。
Java 是一門強(qiáng)類型、靜態(tài)類型語言,編譯器會(huì)根據(jù)數(shù)組的聲明類型防止放入錯(cuò)誤類型。
數(shù)組初始化方式:
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: 不能在給定初始值的同時(shí)給定長度
int[] arr = new int[3]{1, 2, 3};
初始值已經(jīng)決定數(shù)組長度,若再給出長度限制,兩者不一致 Java 將無法正常工作。
我們通過數(shù)組變量結(jié)合位置索引,即可操作數(shù)組中的元素。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71799.html
摘要:是完全面向?qū)ο蟮恼Z言,對(duì)象具有狀態(tài)行為和標(biāo)識(shí)。類一一是具有共同特征和行為的一類事物的統(tǒng)稱。受保護(hù)的,對(duì)同一包內(nèi)的類和所有子類可見。一種通用的內(nèi)存池,用于存放所有對(duì)象。類級(jí)變量又稱全局級(jí)變量或靜態(tài)變量,需要使用關(guān)鍵字修飾。 java語言的基本特點(diǎn) java語言是面向?qū)ο蟮母呒?jí)程序設(shè)計(jì)語言,它是編譯型的語言,Java語言不使用指針,并提供了自動(dòng)的垃圾回收機(jī)制,使得程序員不必為內(nèi)存管理而擔(dān)...
摘要:堆內(nèi)存主要作用是存放運(yùn)行時(shí)創(chuàng)建的對(duì)象。堆內(nèi)存用來存放由創(chuàng)建的對(duì)象和數(shù)組,在堆中分配的內(nèi)存,由虛擬機(jī)的自動(dòng)垃圾回收器來管理。這也是比較占內(nèi)存的原因,實(shí)際上,棧中的變量指向堆內(nèi)存中的變量,這就是中的指針 堆:(對(duì)象) 引用類型的變量,其內(nèi)存分配在堆上或者常量池(字符串常量、基本數(shù)據(jù)類型常量),需要通過new等方式來創(chuàng)建。 堆內(nèi)存主要作用是存放運(yùn)行時(shí)創(chuàng)建(new)的對(duì)象。(主要用于存放對(duì)象,...
摘要:第三階段常見對(duì)象的學(xué)習(xí)集合框架概述和集合的遍歷一集合框架的概述集合的由來如果一個(gè)程序只包含固定數(shù)量的且其生命周期都是已知的對(duì)象,那么這是一個(gè)非常簡單的程序。進(jìn)而它們的遍歷方式也應(yīng)該是不同的,最終就沒有定義迭代器類。 第三階段 JAVA常見對(duì)象的學(xué)習(xí) 集合框架概述和集合的遍歷 (一) 集合框架的概述 (1) 集合的由來 如果一個(gè)程序只包含固定數(shù)量的且其生命周期都是已知的對(duì)象,那么這是一...
摘要:不相等的對(duì)象要具有不相等的哈希碼為了哈希表的操作效率,這一點(diǎn)很重要,但不是強(qiáng)制要求,最低要求是不相等的對(duì)象不能共用一個(gè)哈希碼。方法和方法協(xié)同工作,返回對(duì)象的哈希碼。這個(gè)哈希碼基于對(duì)象的身份生成,而不是對(duì)象的相等性。 本文面向 剛學(xué)完Java的新手們。這篇文章不講語法,而是一些除了語法必須了解的概念。 將要去面試的初級(jí)工程師們。查漏補(bǔ)缺,以免遭遇不測。 目前由于篇幅而被挪出本文的知識(shí)...
閱讀 1613·2021-11-04 16:10
閱讀 3013·2021-09-30 09:48
閱讀 2898·2019-08-29 11:31
閱讀 1639·2019-08-28 18:22
閱讀 3288·2019-08-26 13:44
閱讀 1379·2019-08-26 13:42
閱讀 2909·2019-08-26 10:20
閱讀 821·2019-08-23 17:00