Java初学者:数组,声明以及初始化

今天我们说一下java里面的数组,数组在编程语言里的意思,相当于离散数学里面的集合,其意义几乎完全一样,只有一点区别,离散里有无穷集合,比 如,实数集,但是在java里是不存在无穷集合的。在java里,数组就是一些数据的集合。作为我们这些菜鸟,大多数情况下见到的数组,其中的数据都属于 同一类型。少数情况下不属于同一类型,那很有可能发生了多态现象,而且在访问数组元素的方法时,很可能产生了动态绑定,这些我们以后再说。

好了,让我们目前先认为数组里的元素都属于同一类型。那么,怎样声明以及初始化一个数组呢?

声明一个数组有两种常见的形式:

1. 类型名[] 数组名

2.类型名 数组名[]
   
让我们来举个例子吧,比如我们想声明一个名字为int_array的整型数组,那么就应该是这样:int[] int_array,或者这样:int
int_array[]。 同理,String[] sarray 我们就有了一个名为sarray的字符串数组。double[] darray
我们就有了一个名为darray的浮点型数组。有的程序员喜欢第二种声明方式,而本人则喜欢第一种声明方式,因为第一种声明方式明确的告诉了我们那是一个
数组,而且后面紧跟数组名,分的很清楚。况且,第二种方式更像C++,我本人比较不同意程序员把一个程序语言的习惯带到别的程序语言中,尽管有时候这样也
不会出现语法错误。

有一点需要注意,那就是,声明了一个数组,仅仅是声明,你仅仅是有了这么一个名称而已,你可以认为计算机为你的这个数组开辟了一个新的内存地址,但里面没
有任何东西。由于没有初始化,所以你的这个数组现在是徒有其表,如果你在声明之后,没有初始化就想马上使用这个数组,java就会报错,比如这样:

我们看到,这个程序无法通过编译,观察错误信息,是这样的:variabl a might not have been initialized,就是说,变量a也许还没有被初始化。我们知道,不是也许,真的就没有初始化。其实不光是数组,任何一个数据,如果你只是声明,那 是不能直接使用的。

好了,下面我们来看看,如何初始化一个数组呢?初始化数组常见的有如下方式:

1. 数组名 = new 类型名[数组长度] (此数组已经被声明过)

数组名 = {数据1, 数据2, 数据3, ......, 数据n} (此数组已经被声明过)

数组名 = new 类型名[]{数据1, 数据2, 数据3, ......, 数据n} (此数组已经被声明过)

2. 类型名[] 数组名 = new 类型名[数组长度] (声明和初始化一起进行)

类型名[] 数组名 = {数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一起进行)

类型名[] 数组名 = new 类型名[]{数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一起进行)

3. 类型名 数组名[] = new 类型名[数组长度] (声明和初始化一起进行)

类型名 数组名[] = {数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一起进行)

类型名 数组名[] = new 类型名[]{数据1, 数据2, 数据3, ......, 数据n}(声明和初始化一起进行)

4. 在已经声明过数组的前提下,使用循环或者其他操作来给数组初始化或者赋值。

总结一下,最后一种,我们暂且不提,而前三种形式,其实就是,初始化数组的时候,等号左边有三种格式,等号右边也有三种格式。对于数组来说,最常见的使用 方式是这样的:类型名[] 数组名 = new 类型名[数组长度],比如说:double[] floatarray = new double[100],这样我们就声明并初始化了一个长度为100,名字为floatarray的double型数组。

然而,如果我们以不同的方式初始化一个数组,数组里所含的内容是如何的呢?如果只是给出了数组的长度,而并没有显示的给出数组中的数据,那么,如果数组类 型是double,那么里面的数都是0.0,如果数组类型是int,那么里面的数据都是0,如果数组类型是String,那么里面的数据都是null(空 的意思),如果数组类型是boolean,那么里面的数据都是false。但是如果显示的给出了数据,那么我们不需要给出数组长度,java将自动获得数 组长度,而且里面的数据也都已经有了,我们看一下下面这段测试的程序:

我们看到,除了最后一个外,其他几个数组的内容,都有java按照默认方式进行了初始化,看起来似乎最后一种方式更好,但是实际上,最后一种方式并 不常用,因为一般里说,数组在刚开始定义的时候其内容并不确定,往往是需要在程序中动态的进行赋值,所以,让java给自动赋值,实际上只是走走形式,让 这个数组能够使用而已。

好了,今天我们讲了数组的声明以及初始化的基础知识,以后我们会讲数组的操作。希望各位初学者和本菜鸟一起努力练习,共同进步。

时间: 2024-10-23 07:16:54

Java初学者:数组,声明以及初始化的相关文章

C++之数组声明与初始化

C++版之一维数组 成员全部初始化:int array[5]={1,2,3,4,5}; 部分初始化:int array[5]={1,2,3},实际存储的是1,2,3,0,0 默认:int array[5]={},实际存储0,0,0,0,0 全部初始化成0: int array[5]={0} 但是int array[5]={5},存储的是5,0,0,0,0 C++之多维数组(以二维数组为例) 二维数组的初始化分为两种 顺序初始化和按行初始化 int array[3][2] ={4,2,5,6} i

第五章 数组(1):数组声明和初始化

搞了一年多的android ,现在又回到c语言了,最基础的都不知道了,今天声明数据居然还用变量做大小,罪过啊 数组(array)是若干同类变量的聚合,允许通过统一的名字引用其中的变量.其特定元素通过下标(index)访问.C语言的数组由连续的内存区构成,最低地址对应首元素,最高地址对应末元素. 保存数组所需要的内存量直接与基类型和数组大小有关.对一维数组而言,以字节为单位的总内存量可以这样来确定: 总字节数 = sizeof (基类型)×数组长度 例如,一维数组x int x[100]; 它所占

Java类对象数组声明和初始化

Java是纯面向对象语言.类是其重要构成单位. 然后,在实际编程中,我们会自己定义一些类,如Point <span style="font-size:14px;">public class Point { public Point(){ Lat=0.0; Lng=0.0; } public double GetLat(){ return Lat; } public double GetLng(){ return Lng; } public void SetLat(doubl

Java 数组声明与初始化

引言 学习了好久的java,每次要写数组的声明和初始化代码,总是理不清.最近又碰到了一次这种情况.这次拿出<Thinking In Java>好好总结一翻. 数组声明 对于数组的声明其实都没多大问题,推荐的写法是使用 数据类型 + [] + 数组名称的方式,因为这种方式可以很清楚的表明这是某一种类型的数组.例如,声明一整数类型的数组. 1 int[] a; 数组初始化 其实出现问题最多的就是数组的初始化.数组的初始化分为三种方式,再遇到初始话的时候,总是会搞不清楚.根据我个人的理解,数组的初始

3.Java变量的声明、初始化和作用域

一.Java变量的声明 在 Java 程序设计中,每个声明的变量都必须分配一个类型.声明一个变量时,应该先声明变量的类型,随后再声明变量的名字.下面演示了变量的声明方式.     double salary;     int age;     Boolean op; 其中第一项称为变量类型,第二项称为变量名.分号是必须的,这是 Java 语句的结束符号. 同一类型的不同变量,可以声明在一行,也可以声明在不同行,如果要声明在同一行中,不同的变量之间用逗号分隔,例如下面的例子.     int st

Java数组声明、初始化

维数组的声明方式:type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数] 实例:TestNew.java: 程序代码: public class TestNew { public static void main(String args[]) { int[] s ; int i ; s = new int[5] ; for(i = 0 ; i < 5 

7.Java二维数组的声明、初始化和引用

二维数组的声明.初始化和引用与一维数组相似,这里不再详讲. 二维数组的定义 type arrayName[ ][ ]; type [ ][ ]arrayName; 只是形式上的差别,大家可以根据自己的习惯来选择. 二维数组的初始化 1.静态初始化     int intArray[ ][ ]={{1,2},{2,3},{3,4,5}}; Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同. 2.动态初始化 1) 直接为每一维分配空间,格式如

Java数组的定义,声明,初始化和遍历

数组的定义 数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们.数组的三个基本特点: 1. 长度是确定的.数组一旦被创建,它的大小就是不可以改变的. 2. 其元素必须是相同类型,不允许出现混合类型. 3. 数组类型可以是任何数据类型,包括基本类型和引用类型. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量.数组本身就是对象,Java中对象是在堆中

6.Java一维数组的声明、初始化和引用

一维数组的声明 使用一个数据时,必须要对其进行声明,这个道理对于数组来说也一样,数组在使用之前也必须先声明.先看下面的代码,是如何声明一个变量的.     int a; 仔细分析一下:int 是指变量的数据类型,a 是指变量名,由变量的声明可以联系到数组的声明.     int a[]; 仔细分析一下:int 是指数组中所有数据的数据类型,也可以说是这个数组的数据类型,a[]表示数组名. 基本类型数组的声明有几种形式:     int a[];     int[] a; 这两种形式没有区别,使用