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

数组是大多数编程语言提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组。Java语言的数组变量是引用类型的变量,因此具有Java独有的特性。

在正常的Java开发中,使用Java数组之前,我们都会对数组进行初始化,为数组中的元素分配内存空间、赋值等,但Java数组一定要初始化吗?不初始化可以 么?

其实,java的数组变量是引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量,比如下面这个例子:

public class T {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//定义并初始化nums数组

int nums[] = new int[]{3,13,4,6};

//定义一个prices数组变量

int prices[];

//让prices数组指向nums所引用的数组

prices = nums;

for(int i=0;i<prices.length;i++){

System.out.println(prices[i]);

}

//将prices数组的第三个元素赋值为100

prices[2] = 100;

//访问nums数组的第三个元素 将看到数组100

System.out.println(nums[2]);

}

}

从上面代码可以看出,定义了prices数组之后,并未对prices数组进行初始化。 当执行int prices[]之后,

程序的内存分配如图

从图可以看出,此时的prices数组还未指向任何有效的内存,未指向任何数组对象,此时的程序还不可使用prices数组变量。

当程序执行prices = nums之后,prices变量将指向nums变量所引用的数组,此时prices变量和nums变量引用同一个数组对象。

执行这条语句之后,prices变量已经指向有效的内存及一个长度为4的数组对象,因此程序完全可以正常使用prices变量了。

对于数组变量来说,它并不需要进行所谓的初始化,只要让数组变量指向一个有效的数组对象,程序即可正常使用该数组变量。

所以,Java语言中的数组,不一定要初始化也可正常使用。Java初学者可以尝试用上面这里例子的方法,实际操作一下,加深印象。最后,希望小编的分享对大家有帮助。

相关阅读:《给初学Java的新手们一些建议

时间: 2024-10-14 08:28:03

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

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)Java数组是动态还是静态的啊?     Java语言是典型的静态语言,由此推断Java数组也是静态.何为静态,就是说Java数组在初始化的时候必须确定在内存中分配的空间的大小. 具体实现方式就是在初始化数组的时候(注意不是声明数组的时候,这两个概念别搞混了)指定数组的长度,或者指定初始化数组的内容哦. 同时需要明白数组变量并不是数组本身,数组变量是存储在栈中的,对应的数组对象是存储在堆

java二维数组的常见初始化

public class Test{ public static void main(String[] args){ //第一种: //int[][] arr1 = new int[][]{{1,2}, {2, 3}, {4, 5}}; int[][] arr1 = {{1,2}, {2, 3}, {4, 5}}; System.out.println("arr1的数值:"); for(int i=0; i<3; ++i) for(int j=0; j<2; ++j) Sy

java数组初始化

java数组初始化 //静态初始化数组:方法一 String cats[] = new String[] { "Tom","Sam","Mimi" }; //静态初始化数组:方法二 String dogs[] = {"Jimmy","Gougou","Doggy"}; //动态初始化数据 String books[] = new String[2]; books[0] = "T

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

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

079、Java数组之数组的静态初始化

01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String args[]) { int data[] = new int[]{1, 2, 3, 4, 5}; // 数组的静态初始化 for (int x = 0; x < data.length; x++) { // 循环输出数组 System.out.pri

Java数组的三种初始化方法

import org.junit.Test; //import org.testng.annotations.Parameters; public class Demo { @Test public void test() { //数组的静态初始化 int a[] = {2, 0, 1, 9, 2020}; System.out.println("----------静态初始化----------"); getArray(a); //数组的动态初始化方法一 int[] b = new