Java 数组声明与初始化

引言

  学习了好久的java,每次要写数组的声明和初始化代码,总是理不清。最近又碰到了一次这种情况。这次拿出《Thinking In Java》好好总结一翻。

数组声明

  对于数组的声明其实都没多大问题,推荐的写法是使用 数据类型 + [] + 数组名称的方式,因为这种方式可以很清楚的表明这是某一种类型的数组。例如,声明一整数类型的数组。

1 int[] a;

数组初始化

  其实出现问题最多的就是数组的初始化。数组的初始化分为三种方式,再遇到初始话的时候,总是会搞不清楚。根据我个人的理解,数组的初始化操作分为三种方式。

  第一种:特殊初始化,不用new关键字完成,在数组声明的同时完成初始化操作,也被称其为静态初始化。主要原因是因为采用这种初始化的方式,数组的存储空间的分配是由编译器完成的。

     下面以整数数组初始化为例,完成一个静态数组初始化:

1  int[] a = {1,2,3};
2 Integer[] b = {
3                 new Integer(1),
4                 new Integer(2),
5                 3             //Autoboxing
6         };

  第二种:先使用new关键字创建数组,然后再分别为数组中的元素赋值,完成初始化操作。(注:如果数组元素类型为基本数据类型,在完成new 操作之后,数组中的元素会自动初始化为空值,可以直接使用,但是数组元素为引用类型,在完成new操作之后,没有给引用类型赋值,就直接使用数组中的元素,会产生运行时异常。)

    下面还是以整数数组初始化为例2,完成数组初始化:

1         int[] a = new int[2];   //需要指定数组的长度
2         a[0] = 1;
3         a[1] = 2;

  第三种:使用new关键字创建数组,同时为数组中的元素赋值,完成出事化操作。

1         int[] a = new int[]{1,2,3}; //与第二种方法不同,这里new不需要指定数组的长度,数组长度由其后的初始化操作确定
2
3         int[] b = new int[]{
4                 new Integer(1),
5                 new Integer(2),
6                 3
7         };

原文地址:https://www.cnblogs.com/a-du/p/10075914.html

时间: 2024-10-27 04:53:14

Java 数组声明与初始化的相关文章

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 

java 数组声明

Java 数组声明常用的方式 1.类型  数组名称[] = new 数组类型[个数] 2,类型  数组名称    =  new 数组类型[] {} 3,类型[] 数组名称 = {} //类型 数组名[] = new 数组类型 [个数] int $arr[] = new int [4]; $arr[0] = 1; $arr[1] = 2; $arr[2] = 3; $arr[3] = 4; //类型 数组名称 = new 数组类型[]{} int $arr1[] = new int[]{1,2,3

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

Java数组一定要初始化才能使用吗?

数组是大多数编程语言提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组.Java语言的数组变量是引用类型的变量,因此具有Java独有的特性. 在正常的Java开发中,使用Java数组之前,我们都会对数组进行初始化,为数组中的元素分配内存空间.赋值等,但Java数组一定要初始化吗?不初始化可以 么? 其实,java的数组变量是引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量,比如下面这个例子: public class T {

第五章 数组(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] 数组声明有关问题分析

问题 最近在CSDN论坛上闲逛的时候,看见有朋友在询问一些基础的知识点,而恰好最近我一直在学Java基础部分,因此我从内存的角度试着总结了一下有数组声明有关问题 @Test public void Test(){ String[] p = null; p = {"no"};//这种不指定数组下标初始化的方式只在下一行这种格式中适用 String[] s = new String[]{"no"}; p[0] = "y";//此处编译可以通过,但是运

java数组定义及初始化+print打印问题

一般写SyStem.out.pirntln(xxxxx);这样是默认换行的等于在打印之后默认加上了:/n/r,若想在同一行输出,则写:system.out.print(xxx); 定义:int a[]; //声明未初始化a = new int [10]; // 定义占用空间大小(10个int)int a[] = new int [10]; //声明并定义大小(即分配了指定大小的空间)int a[] = {1,2,3}; // 声明并初始化,占用空间大小是3个int.初始化: 一维数组 1) in

Java 数组声明的几种方式

Java数组定义声明的几种方法: 1. 类型名称[] 变量名=new 类型名称[length]; 2.类型名称[] 变量名={?,?,?}; 3.类型名称[] 变量名=new 类型名称[]{?,?,?}; 代码样例: public class Example1 { public static void main(String []args){ //数组定义的几种方法 // 1. 类型名称[] 变量名=new 类型名称[length]; int []a=new int[4]; a[0]=1; a[