编程语言
首页 > 编程语言> > Java学习随笔-数组

Java学习随笔-数组

作者:互联网

数组

1、数组的含义和特点

数组的含义

数组的四个基本特点

  1. 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
  2. 其元素必须是相同类型,不允许出现混合类型。
  3. 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
  4. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组 本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象 本身是在堆中的。

2、数组的声明与创建

1.声明数组

数组必须先声明,才能使用

//数据类型[] 数组名; // 首选的方法
double[] array;
//或
//数据类型 数组名[]; // 效果相同,这是C和C++的声明方法,Java也能用,目的是为了让C++程序员快速上手Java
double array[];

2、数组的创建

Java语言使用new操作符来创建数组,语法如下:

//数组名 = new 数据类型[数组的长度];

3、数组变量的声明,和创建数组也可以用一条语句完成

//数据类型[] 数组名 = new 数据类型[数组的长度];
double[] array = new double[5];

可通过数组名.length的方式获取数组长度:

//数组名.length
array.length

4、数组的初始化

静态初始化

//数据类型[] 数组名={元素值,元素值...}
int[] arr={1,2,3,4,5,123,5213,55};
int arr2[]={1,2,3,4,5,6,7};

动态初始化

//先定义数组,为数组分配好空间再进行赋值
int[] arr = new int[6];
arr[0]=1;
arr[1]=4;
arr[2]=3;
arr[3]=2;
arr[4]=5;
arr[5]=6;

利用Scanner进行初始化

public class Demo01 {
    public static void main(String[] args) {
        int[] arr = new int[5];
        Scanner scanner = new Scanner(System.in);

        //从键盘中输入数组元素
        for (int i = 0; i < arr.length; i++) {
            System.out.print("请输入第"+(i+1)+"个数组元素:");
            arr[i]=scanner.nextInt();
        }

        System.out.println("=====================");
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            System.out.print("第"+(i+1)+"个数组元素为:");
            System.out.println(arr[i]);
        }
    }
}

数组使用的注意事项

  1. 数组是多个相同类型数据的组合,实现对这些数据的统一管理
  2. 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但不能混用
  3. 数组创建后,如果没有进行初始化,数组的元素都有默认值,比如Int类型的默认值为0,String类型的默认值为null
  4. 使用数组的步骤:1. 声明数组并开辟空间 2.给数组各个元素进行初始化 3.使用数组
  5. 数组的下标是从0开始
  6. 数组下标必须在指定范围,不能超出规定的范围,否则抛出下标越界异常,比如int[] arr =new int[5];的有效下标为0-4, 像arr[10]=7;这样的使用就超出了范围
  7. 数组属于引用类型,数组型数据是对象(object)

数组的赋值机制

基本数据类型赋值,这个值就是具体的数据,而且相互不影响。

int a = 2;
int b = a;
b = 6;
System.out.println("a="+a);//a=2
System.out.println("b="+b);//b=6
//b的变化不会影响到a的值

但是数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用传递

int[] arr1={1,2,3};
System.out.println(Arrays.toString(arr1));//输出 [1,2,3]
int[] arr2=arr1;
arr2[0]=7;
arr2[1]=8;
arr2[2]=9;
//Arrays.toString()是自带的遍历数组的方法
System.out.println(Arrays.toString(arr1));//输出 [7,8,9]
System.out.println(Arrays.toString(arr2));//输出 [7,8,9]
//很明显,arr2的变化影响到了arr1

int[] arr2=arr1; 这条语句将arr1的地址赋给了arr2,如下图所示arr1和arr2都指向堆区的同一块区域,所以改变arr2的数组元素就相当于也改变了arr1

以上是看韩顺平老师的Java课程做的随笔笔记

韩老师课程链接:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0&vd_source=a5cb5abf51083a337c47109ab202cc59

标签:arr,Java,int,数据类型,System,arr2,数组,随笔
来源: https://www.cnblogs.com/YeJ1an/p/16683357.html