Java中数组的定义与使用

本文深入解析Java数组的概念,包括动态初始化、引用传递、静态初始化及匿名数组的使用,探讨数组操作技巧与常见异常处理,强调数组长度固定的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。

1.基本概念

1.1 动态初始化
数组是引用数据类型,有内存分配问题。
数组动态初始化:声明并开辟数组

数据类型[ ] 数组名称 = new 数据类型 [长度]

特点:数组首先开辟内存空间,再通过使用索引来进行内容的设置。
eg:

public class ArrayDemo{
     public static void main (String [ ] args){ 
         int [ ] x = new int [3];
         System.out.println(x.length);
         x [0] = 1;
         x [1] = 2;
         x [2] = 3;
         for (int i = 0;i < x.lengrh; i++ ){
              System.out.println (x [i]);
        }
    }
}

数组开辟空间后,就可以采用如下方式进行操作:
数组的访问通过索引完成。即“数组名称[索引]”
小tip: 数组索引从0 开始,可以采用的索引范围为(0~ 索引-1);
例如:现在开辟了三个空间的数组,那么索引就是:0、1、2.
如果访问超过索引访问,那么会产生“javalang.ArrayIndexOutOfBoundsException”异常信息。即数组越界是报错(运行时异常)
② 当数组采用动态开辟空间后,数组之中的每个元素都是该数据类型的默认值。

③ 数组本身是一个有序的集合操作,所以对于数组的内容往往采用循环的模式完成(数组是一个有限的集合,采用for循环)。

④ 在Java中有一种动态取得数组长度的方法:数组名称.length;

数组本身除了声明并开辟空间外,还有另外一种开辟模式。
即 分布进行数组实例化:
eg:

int [] x = null;
x = new int [3];

数组属于引用数据类型,因此在使用之前一定要开辟空间(实例化),否则就会产生"NullPoninterException".

1.2 引用传递
数组作为引用数据类型,一定也可以发生引用传递。

引用传递空间:同一块堆内存可以被不同的栈内存指向。
eg:
多个栈内存指向堆内存:

public class ArrayDemo{
     public static void main(String[] args){
           int [] x = null;
           int temp = null ;
           x = new int [3];//在堆上分配了内存空间
           System.out.println(x.length);
           x[0] = 1;//数组第一个元素
           x[1] = 2;//数组第二个元素
           x[2] = 3;//数组第三个元素
           for (int i = 0;i < x.length;i++){
               System.out.println(x[i]);//通过循环控制索引下标更改;
       }
       temo = x;//发生引用传递时不出现[]
       temp [0] =55;// 修改数据
       System.out.println(x[0]);
    }
}

1.3数组静态初始化

特点:数组在定义的同时设定内容。

简化格式:

数据类型[] 数组名称 = {值,值,......}

完整格式:

数据类型[] 数组名称 = new 数据类型[]{值,值,  .....}

eg:

public class ArrayDemo{
    public static void main (String[] args){
         int[] x = {1,2,3,4,5,6,7,8,9};//静态初始化数组
         System.out.println(x.length);
         for (int i = 0;i < x.length;i++){
               System.out.println(x[i]);
         }
    }
}

这里引入一个概念:匿名数组

匿名数组是指:没有任何栈内存指向的数组
匿名数组只能使用一次,并且只能使用完整格式。
eg:

public slass ArrayDemo {
     publi static void mian(String[] args){
        System.out.println(new int [] {1,2,3,4,5,6,7,8,9}.length);
     }
}

建议在使用静态方法定义数组的时候使用完整格式。

数组的最大缺陷:长度固定:一旦声明后,长度不可改变。(存在越界问题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值