日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java基础(十) 数组类型

發(fā)布時(shí)間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础(十) 数组类型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

###1. 數(shù)組類簡(jiǎn)介

在java中,數(shù)組也是一種引用類型,即是一種類。

我們來(lái)看一個(gè)例子,理解一下數(shù)組類:

public static void main(String[] args) {Class c = int[].class; Class cIn = Integer[].class;Class ccIn = Integer[][].class;System.out.println(c.getName());System.out.println(cIn.getName());System.out.println(ccIn.getName());Class f = float[].class;Class flo = Float[].class;System.out.println(f.getName());System.out.println(flo.getName()); }

輸出的結(jié)果:

[I
[Ljava.lang.Integer;
[[Ljava.lang.Integer;
[F
[Ljava.lang.Float;

上面的輸出結(jié)果就是通過(guò)Class的toString()方法輸出的內(nèi)容,可以看出規(guī)律,“[”表示一維數(shù)組,“[[”則表示二維數(shù)組,如此類推下去。同時(shí),如果是引用類型,則還要“[”后面還要跟一個(gè)”L“+類的全限定名。而如果是基本類型,則只要跟對(duì)應(yīng)的大寫字母。
###2. 數(shù)組類的分類

從上面的例子的輸出可以看出,數(shù)組類是在JDK中是有分類的:對(duì)于一維的基本類型數(shù)組,輸出”[“,而對(duì)于一維的引用數(shù)組則輸出 ”[L“,多了一個(gè)”L“。

數(shù)組類可以分類可以分成兩類

  • 基本類型的數(shù)組類;
  • 引用類型的數(shù)組類;

這兩種數(shù)組類的最大區(qū)別在于他們的祖先類不同。
##2.1 基本類型的數(shù)組類

對(duì)于基本類型來(lái)說(shuō),基本類型數(shù)組類的父類一個(gè),就是Object類。

public static void main(String[] args) {int[] a = new int[3];Object o = a;//編譯通過(guò),類型轉(zhuǎn)換成功;//打印一下數(shù)組的超類System.out.println("int[]的superClass是: "+int[].class.getSuperclass());}

運(yùn)行結(jié)果:

int[]的superClass是: class java.lang.Object

##2.2 引用類型的數(shù)組類

對(duì)于引用類型的數(shù)組類,其所有的祖先類除了Object類外,還包括下面所說(shuō)的類:
如果A是B的祖先類,A[]也是B[]的祖先類,其他維度也如此類推,不同維度間,沒(méi)有任何關(guān)系。

看下面的例子:

public class Test_3 {public static void main(String[] args) {Children[] childrens = new Children[3];Ancestor[] ancestors = childrens; //編譯通過(guò),類型上轉(zhuǎn)成功// 判斷childrens 是不是 Ancestor或者是其子類的實(shí)例,進(jìn)一步證明 Children[] 是 Ancestor[]的子孫類System.out.println("childrens instanceof Ancestor[] : " + (childrens instanceof Ancestor[])); } }class Ancestor{//祖先類}class Parent extends Ancestor{//父類,繼承于Ancestor}class Children extends Parent{//子類,繼承于Parent}

運(yùn)行結(jié)果:

childrens instanceof Ancestor[] : true

上面的例子中,因?yàn)锳ncestor是Children的祖先類,所以Ancestor[]也是Children[]的祖先類。

如果這時(shí)候我們調(diào)用執(zhí)行下面的代碼:

System.out.println(Children[].class.getSuperclass());

輸出的結(jié)果卻是:

class java.lang.Object

咦,為什么引用類型數(shù)組Children[]的父類是Object類,那么與上面所說(shuō)的

Ancestor[]是Children[]的祖先類

起了沖突。因?yàn)槿绻割愂荗bject,Object類是根類了,那么祖先類就只有一個(gè),就不可能再有其他的祖先類

這是為什么呢?

我們看一下getSuperclass()的API描述:

public Class<? super T> getSuperclass()
返回表示此 Class 所表示的實(shí)體(類、接口、基本類型或 void)的超類的 Class。如果此 Class 表示 Object 類、一個(gè)接口、一個(gè)基本類型或 void,則返回 null。如果此對(duì)象表示一個(gè)數(shù)組類,則返回表示該 Object 類的 Class 對(duì)象。
-返回:
此對(duì)象所表示的類的超類。

原來(lái),getSuperclass對(duì)于調(diào)用者是數(shù)組類的對(duì)象的話,那么直接返回Object類的class對(duì)象。

作者:jinggod
出處:http://www.cnblogs.com/jinggod/p/8428062.html

總結(jié)

以上是生活随笔為你收集整理的java基础(十) 数组类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。