首页
登录 | 注册

java数组的声明和初始化

数组

Java中的数组跟C/C++这些语言中的数组的语法结构很相似。但是,Java去掉了C/C++中的可以通过[]或者使用指针来访问元素的功能。这种在C/C++中被普遍接受的功能虽然强大,但是也让Bug横行的软件更容易出现。因为Java不支持这种直接通过指针来操纵数据,这类的Bug也被消除了。
数组是一类包含被称为元素的值的对象。这就为你在程序中移动或保存一组数据以很方便的支持,并且允许你根据需要访问和改变这些值。用一个小例子来说:你可以创建一个String类型的数组,每一个都包含一个运动队队员名字。数组可以传送给一个需要访问每个队员名字的方法。如果一个新队员加入,其中一个老队员的名字可以被修改成新队员的名字。这就显得比player1、player2、player3等等很随意的不相关的变量方便很多。跟变量通过变量名来访问不同的是,元素通过从0开始的数字来访问。因此,你可以一个个的访问数组的每个元素。
数组跟对象很相似,它们都是用new关键字来创建,并且有属于主要父对象类的方法。数组可能存储简单类型或者对象的引用。
数组的每个元素必须是同一类型的。元素的类型在数组被声明时确定。如果你需要存储不同类型元素的方式,你可以选择collection类,collection类是Java2考试中的新增的考点,我们将会在第十部分讨论它。你可以用数组来存储对象的句柄,你能像使用其它任意对象引用一样访问,摘录或者使用它。

声明但不分配空间

声明一个数组不需分配任何存储空间,它仅仅是代表你试图创建一个数组。跟C/C++声明一个数组的明显区别就是空间的大小没有被特别标识。因此,下面的声明将会引起一个编译期错误。
int num[5];
一个数组的大小将在数组使用new关键字真正创建时被给定,例如:
int num[];
num = new int[5];
你可以认为命令new的使用跟初始化一个类的实例的使用是类似的。例子中数组名num说明数组大小可以是任意大小的整形数据。

同时声明和创建数组

这个例子也可以使用一行语句完成:
int num[] = new int[5];
方括号也可以放在数据类型后面或者数组名后面。下面的两种都是合法的:
int[] num;
int num[];
你可以读作:
一个名字为num的整型数组
一个数据类型为整型名字为num的数组

java数组的声明和初始化相结合

一个数组可以通过一个语句来创建并初始化,这就代替了通过数组循环来初始化的方式。这种方法很适合小数组。下面的语句创建了一个整型数组并且赋值为0到4:
int k[]=new int[] {0,1,2,3,4};
注意,你没有必要确定数组元素的数量。你可能在测验中被问到下面的语句是不是正确的问题:
int k=new int[5] {0,1,2,3,4} //Wrong, will not compile!
你可以创建数组的同时确定任何数据类型,因此,你可以创建一个类似于下面形式的字符串数组:
String s[]=new String[] {"Zero","One","Two","Three","Four"};
System.out.println(s[0]);
这句将会输出String[0]。

相关文章

  • 1.List转Array public static void main(String args[]) {         FetchFileUtil Ffu = new FetchFileUtil();         List list ...
  •     来源:http://blog.sina.com.cn/s/blog_4cc16fc50100bjjp.html  对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初 ...
  • "作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的.事实上,Java本来就是从C++衍生出来的." 然而,C++和Java之间仍存在一些显著的差异.可以这样说,这些差异代 ...
  • 概述 IBM Toolbox for Java 是一个类的集合,用于开发与 IBM i 相关的 Java 应用程序.它包含的各类工具,提供了对于 IFS.IBM i 系统信息.客户端 / 服务器等各类应用场景的的支持,用户可以在其他平台诸如 ...
  • 第十一章--内核的数据类型
    一.数据类型         u8;         /* 无符号字节(8位) */         u16:     /* 无符号字(16位) */         u32:     /* 无符号32位 */         u64:   ...
  • kmemleak的工作原理很简单,主要是对kmalloc().vmalloc().kmem_cache_alloc()等接口分配的内存地址空间进行跟踪,通过对其地址.空间大小.分配调用栈等信息添加到PRIO搜索树中进行管理.当有匹配的内存释 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.014 s.
京ICP备10005923号