在Java中数组属于什么类型

Python09

在Java中数组属于什么类型,第1张

Java中数组类型

Java是一种强类型的语言。既然是对象, 那么就必须属于一个类型,比如根据Person类创建一个对象,这个对象的类型就是Person。

int[] a1 = {1, 2, 3, 4}

System.out.println(a1.getClass().getName())

//打印出的数组类的名字为[I

String[] s = new String[2]

System.out.println(s.getClass().getName())

//打印出的数组类的名字为 [Ljava.lang.String

String[][] ss = new String[2][3]

System.out.println(ss.getClass().getName())

//打印出的数组类的名字为[[Ljava.lang.String

虚拟机自动创建了数组类型,可以把数组类型和8种基本数据类型一样, 当做java的内建类型。这种类型的命名规则是这样的。

每一维度用一个[表示;开头两个[,就代表是二维数组。

* [后面是数组中元素的类型(包括基本数据类型和引用数据类型)

在java语言层面上,s是数组,也是一个对象,那么他的类型应该是String[],这样说是合理的。但是在JVM中,他的类型为[java.lang.String。顺便说一句普通的类在JVM里的类型为 包名+类名,也就是全限定名。同一个类型在java语言中和在虚拟机中的表示可能是不一样的。

数组分类

1.数组是由一组有序的值或键值对组成的数据结构

2.数组根据键名类型分为:索引数组 与 关联数组 二大类

3.索引数组:键名是元素的位置索引,默认从0开始,采用系统自动处理可以省略键名

4.关联数组:键名是自定义的字符串,类似于对象中的属性列表

数组类型

编辑 语音

多维数组

有时需要追踪记录数组中的相关信息。

例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的 X、Y坐标。这时应该用多维数组存储值。

可用 Visual Basic 声明多维数组。

例如,下面的语句声明了一个过程内的 10 × 10 的二维数组。

Static MatrixA (9,9) As Double

可用显式下界来声明两个维数或两个维数中的任何一个:

Static MatrixA (1 To 10,1 To 10) As Double

可以将所有这些推广到二维以上的数组。例如:

Dim MultiD (3,1 To 10,1 To 15)

这个声明建立了三维数组,大小为 4 × 10 × 15。元素总数为三个维数的乘积,为 600。

注意

在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用 Variant 数组时更要格外小心,因为他们需要更大的存储空间。

用循环操作数组

可以用 For循环嵌套有效的处理多维数组。例如,在 MatrixA 中基于每个元素在数组中的位置为其赋值:

Dim I As Integer,J As Integer

Static MatrixA(1 To 10,1 To 10) As Double

For I = 1 To 10

For J = 1 To 10

MatrixA (I,J) = I * 10 + J

Next J

Next I

一维数组

定义

一维数组是最简单的数组,其逻辑结构是线性表。要使用一维数组,需经过定义、初始化和应用等过程。

数组声明

在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

举例:

int[]x//声明名称为x的int型数组

x=new int[10]//x数组中包含有10个元素,并为这10个元素分配内存空间

在声明数组时,也可以将两个语句合并成一行,格式如下:

数据类型[]数组名= new 数据类型[个数]

利用这种格式在声明数组的同时,也分配一块内存供数组使用。如上面的例子可以写成:

int[]x = new int [10]

等号左边的int[]x相当于定义了一个特殊的变量x,x的数据类型是一个对int型数组对象的引用,x就是一个数组的引用变量,其引用的数组元素个数不定。等号右边的new int[10]就是在堆内存中创建一个具有10个int型变量的数组对象。int[]x = new int [10]就是将右边的数组对象赋值给左边的数组引用变量。 [5]

二维数组

定义

前面介绍的数组只有一个下标,称为一维数组, 其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的, 因此C语言允许构造多维数组。多维数组元素有多个下标, 以标识它在数组中的位置,所以也称为多下标变量。本小节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组类型说明的一般形式是:

类型说明符数组名[常量表达式1][常量表达式2]…;

其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:

int a[3][4]说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:

a[0][0],a[0][1],a[0][2],a[0][3]

a[1][0],a[1][1],a[1][2],a[1][3]

a[2][0],a[2][1],a[2][2],a[2][3]

二维数组在概念上是二维的,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的, 也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在C语言中,二维数组是按行排列的。在如上中,按行顺次存放,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为

int类型,该类型占两个字节的内存空间,所以每个元素均占有两个 字节(数组中每一格为一字节)。

三维数组

三维数组,是指维数为三的数组结构。三维数组是最常见的多维数组,由于其可以用来描述三维空间中的位置或状态而被广泛使用。

三维数组就是维度为三的数组,可以认为它表示对该数组存储的内容使用了三个独立参量去描述,但更多的是认为该数组的下标是由三个不同的参量组成的。

数组这一概念主要用在编写程序当中,和数学中的向量、矩阵等概念有一定的差别,主要表现:在数组内的元素可以是任意的相同数据类型,包括向量和矩阵。

对数组的访问一般是通过下标进行的。在三维数组中,数组的下标是由三个数字构成的,通过这三个数字组成的下标对数组的内容进行访问。

四种八类:

基本数据类型

整数类型:

byte:字节占用 1字节   8位,用来表达最小的数据单位,储存数据长度为 正负 127;

short:字节占用 2字节 16位,储存数值长度为 -32768-32767

int:字节占用 4字节     32位,最为常用的整数类型,储存长度为,-2^31-1~2^31  (21 亿)

long:字节占用 8字节  64位,当到达int数值极限时使用,储存长度为 看图片:

         

         

浮点数类型:

float:单精度浮点型    32位  取值范围  3.4e-38~3.4e-38

double:双精度浮点型   64位  ,java中默认的浮点类型   取值范围 1.7e-308~1.7e-308

字符类型:

char:16位  ,java字符使用Unicode编码;

布尔类型

boolean : true 真  和 false 假

引用数据类型:

类 class

接口 interface

数组