一维数组的使用

文章详细介绍了Java中一维数组的三种初始化方式:动态初始化(两种方式)和静态初始化,并强调了数组下标从0开始以及未赋值时的默认值。还通过代码示例展示了数组的使用细节和注意事项,如数组属引用类型,元素类型需统一,以及下标越界等常见问题。

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

目录

需求引出

一维数组的使用方式

1.动态初始化(第一种方式)

2.动态初始化(第二种方式)

3.静态初始化

数组的注意事项和使用细节

数组的赋值机制


需求引出

首先我们需要了解数组是说明,数组是可以存放多个同一类型的数据,数组 也是一种数据类型,是引用类型,在Java的数据类型那一篇文章也讲过,除了基本数据类型还有引用类型。

那么我们为什么需要数组,数组让我们方便了数据的存储,从名字上来看,数组就是存放数据的地方

一维数组的使用方式

1.动态初始化(第一种方式)

数组的定义

数据类型 数组名[ ]=new 数据类型[ ]

int a[]=new int[5]; //创建了一个数组名字是a存放5个int


2.动态初始化(第二种方式)

先声明数组

语法:数据类型 数组名];也可以 数据类型[]数组名;

int a[];或者 int[] a;

创建数组

语法:数组名=new 数据类型[大小];

a=new int[10];


3.静态初始化

初始化数组

语法:数据类型 数组名]=(元素值,元素值...)

int a[]=(2,5,6,7,8,89,90,34,56),


通过了解上面的三种初始化的方式,我们大致可以知道,初始化数组的方式有三种,接下来通过代码更将清楚的了解。

注意数组的下标是从0开始的,int[] arr = new int[5] 这句话的意识是,表示创建了一个能存放五个int的数组,但是并没有下标为5的这个位置,因为下标从0开始,因此最大也就是4

代码演示:

package com.array;

/**
 * 演示一维数组的使用
 */
public class array01 {
    public static void main(String[] args) {

        /**
         * 注意数组的下标是从0开始的,int[] arr = new int[5] 这句话的意识是,表示创建了一个能存放五个int的数组,但是并没有下标为5的这个位置,因为下标从0开始,因此最大也就是4
         */

        //讲解数组初始化的三种方式
        //1.动态初始化(第一种方式)
        //数组的定义 :数据类型 数组名[ ]=new 数据类型[ ]
        //int[] arr = new int[5]; //表示创建了一个数组名字是arr能够存放5个int的数组


        //1.动态初始化(第二种方式)
        //先声明数组
        //语法:数据类型 数组名]也可以 数据类型[]数组名;
        int a[];//这里也就是相当于声明了一个数组,但是并没有在堆中,开辟空间
        // 创建数组
        // 语法:数组名=new 数据类型[大小];
        a = new int[10];//一直到这一步,才真正的在内存中为数组分配了对应的空间

        //第三种方式(静态初始化)
        // 语法:数据类型 数组名]=(元素值,元素值...)
        int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    }
}

数组的注意事项和使用细节

1.数组是多个相同类型数据的组合,实现对这些数据的统一管理

2.数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。

3.数组创建后n 如果没有赋值,有默认值int 0,short 0, byte 0, long 0,float 0.0,double 0.0,char \u0000boolean false,String null

4.使用数组的步骤1.声明数组并开辟空间2给数组各个元素赋值3使用数组

5.数组的下标是从0开始的。

6.数组下标必须在指定范围内使用,否则报:下标越界异常,比如int [] arr=new int[5];则有效下标为0-4

7.数组属引用类型,数组型数据是对象(object)

代码演示:

注意

1.数组的下标是从0开始的,如果越界会报数组下标越界异常

2.数组要先声明在使用

3.如果没有给数组赋值,那么会有默认值

//如果是int 类型数组没有给他赋值,那么数组中存放的就是0
//如果是short 类型数组没有给他赋值,那么数组中存放的就是0
//如果是byte 类型数组没有给他赋值,那么数组中存放的就是0
//如果是long 类型数组没有给他赋值,那么数组中存放的就是0
//如果是float 类型数组没有给他赋值,那么数组中存放的就是0.0
//如果是double 类型数组没有给他赋值,那么数组中存放的就是0.0
//如果是char 类型数组没有给他赋值,那么数组中存放的就是\u0000
//如果是boolean 类型数组没有给他赋值,那么数组中存放的就是false
//如果是String  类型数组没有给他赋值,那么数组中存放的就是null
package com.array;

/**
 * 演示数组的细节
 */
public class arrayDetail {
    public static void main(String[] args) {
        int[] arr = new int[4];//创建了一个int类型的数组

//        1.数组是多个相同类型数据的组合,实现对这些数据的统一管理
        //arr是一个int类型的数组,如果也就只能存放int类型数据,如果存放其他类型的数据会报错,但是比如是一个char可以和int互相转换的就可以也就不会报错
//        char c = 'a';
//        double d = 1.1;
//        //arr[1]=d;//这就会报错。是错误的
//        arr[0] = c;//正确,因为char的本质还是一个数字 char->int

//        2.数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
        String[] arr1 = {"jack", "tom"};

//        3.数组创建后n 如果没有赋值,有默认值int 0,short 0, byte 0, long 0,float 0.0,double 0.0,char \u0000 boolean false,String null
        //如果是int 类型数组没有给他赋值,那么数组中存放的就是0
        //如果是short 类型数组没有给他赋值,那么数组中存放的就是0
        //如果是byte 类型数组没有给他赋值,那么数组中存放的就是0
        //如果是long 类型数组没有给他赋值,那么数组中存放的就是0
        //如果是float 类型数组没有给他赋值,那么数组中存放的就是0.0
        //如果是double 类型数组没有给他赋值,那么数组中存放的就是0.0
        //如果是char 类型数组没有给他赋值,那么数组中存放的就是\u0000
        //如果是boolean 类型数组没有给他赋值,那么数组中存放的就是false
        //如果是String  类型数组没有给他赋值,那么数组中存放的就是null

        //举例
        //我们创建了一个int类型的数组,我们并没有给他赋值,那么遍历完数组的结果就是都是0
        System.out.println("输出int类型的arr数组");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }

        System.out.println("输出String类型的数据");
        //因为我们给arr1这个数组赋值了,所有并没有输出null
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i] + " ");
        }

//        4.使用数组的步骤1.声明数组并开辟空间2给数组各个元素赋值3使用数组
        //第一步
        int[] arr2;//声明的一个数组
        //第二步
        arr2 = new int[3];//给数组开辟空间
        //第三步
        for (int i = 0; i < arr2.length; i++) {//遍历数组
            System.out.print(arr2 + " ");
        }

//        5.数组的下标是从0开始的。
        //在运行的时候会报错,因为数组的下标从0开始,因此对于arr数组来说,最大的下标就是3,因此在运行下面这段代码的时候会报数组下标越界异常ArrayIndexOutOfBoundsException
//        for (int i = 0; i < 10; i++) {
//            System.out.println(arr[i]);
//        }

//        6.数组下标必须在指定范围内使用,否则报:下标越界异常,比如int [] arr=new int[5];则有效下标为0-4
//        7.数组属引用类型,数组型数据是对象(object)
    }
}

数组的赋值机制

数组默认情况下是引用传递,赋的是地址

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值