ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java学习随笔-数组

2022-09-11 03:00:52  阅读:278  来源: 互联网

标签:arr Java int 数据类型 System arr2 数组 随笔


数组

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有