JAVA 数组(一维数组)

本文详细介绍了Java语言中的数组概念,包括数组声明与初始化的方法、数组元素的操作及常见问题,还介绍了数组遍历技巧。

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

Java 语言中提供的数组是用来存储固定大小的同类型元素。即存储同种数据类型的多个值

1.声明数组变量和数组初始化

首先必须声明数组变量,才能在程序中使用数组。

语法:

dataType[] arrayRefVar;   
 
或
 
dataType arrayRefVar[]; 

Java中的数组必须先初始化,然后才能使用

初始化数组有两种:静态初始化和动态初始化

动态初始化: 初始化时指定数组长度,由系统为数组分配初始值

格式:

                数据类型[ ] 变量名= new  数据类型[数组长度];

范例:

                int [ ] arr = new int[5];

静态初始化:初始化时,就可以指定要存储的元素,系统还会计算出该数组的长度

格式:

                数据类型[ ] 变量名= {数据1,数据2,数据3.....};

范例:

                int [ ] arr = {1,2,3,4,5,6};

动态初始化和静态初始化的区别:

  • 动态初始化:手动指定数组长度,由系统给出默认初始值。
  • 静态初始值:手动指定数组元素,系统会根据元素个数,计算数组的长度。

2.操作数组的元素

数组元素访问

        访问方式 格式:数据名[索引]

索引的作用:访问数组容器中的空间位置

索引是数组容器中空间的编号

特征:

  • 索引从0开始

  • 索引是连续的

  • 索引逐一增加,每次加一

public class Text1 {
    public static void main(String[] args) {
        int d[]={4,5,6,2,3,1,9,8,7,10,12,14,15};//下标从0开始
        System.out.println(d[0]);//输出下标为0的值 为4
        System.out.println(d[1]);//输出下标为1的值 为5
    }
    }

3.内存分配

Java 程序在运行时,需要在内存中分配空间。

为了提高运算效率,就对空间进行了不同区域的划分

每一片区域都有特定的处理数据方式和内存管理方式。

  • 栈内存:方法运行时,进入的内存,局部变量都存放于这块内存当中

  • 堆内存:new出来的内容都会进入堆内存,并且会存在地址值

  • 方法区:字节码文件(.class文件)加载时进入的内存

  • 本地方法栈:调用操作系统相关资源

  • 寄存器:交给CPU去使用

数组操作常见的问题

  • 索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
  • 空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
  • null:空值,引用数据类型的默认值,表示不指向任何有效对象

索引越界:

        int d[]={4,5,6,2,3,1,9,8,7,10,12,14,15};//下标从0开始
        System.out.println(d[20]);//输出下标为20的值

因为数组中没有下标为20的值,导致索引越界报错

 空指针异常

        int d[]={4,5,6,2,3,1,9,8,7,10,12,14,15};//下标从0开始
        d=null;
        System.out.println(d[2]);//输出下标为2的值,

第二行代码d=null将d数组的值赋为空值,所以后面的索引就报错

 4.数组遍历

 

 扩展:

                For-Each 循环

 For-Each 能在不使用下标的情况下遍历数组。

语法:

for(type element: array)
{
    System.out.println(element);
}

用法实例:

public class Text1 {
    public static void main(String[] args) {
                int a[] = {12,36,45,97,52};
                // 打印所有数组元素
                for (int element: a) {
                    System.out.println(element);
                }
            }
        }

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值