Java中一维数组的详细介绍

简介: Java中一维数组的详细介绍

一、一维数组介绍

 ​ ​  ​  ​  ​  ​ 什么是数组?

​  ​  ​  ​  ​  ​  ​  ​  ​ 数组指的是一种容器,可以用来存储同种数据类型的多个值

​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​ 总结:数组容器在存储数据的时候需要结合数据类型考虑。

 ​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​ 例如:int类型的数组容器(boolean byte short double)

​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​  ​ 建议:容器的类型,和存槠的数据类型保持一致


二、数组元素

1.数组元素访问

 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​数组元素访问:

  * 格式:数组名 [ 索引 ];      //arr [8]

  * 索引:索引是数组容器中空间的编号,编号从0幵始,逐个+1增长  

注意:当访问了数组中不存在的索引,就会引发索引越界异常


2.数组元素修改

 ​ ​ ​  ​ ​数组元素修改:

  * 格式:数组名 [ 索引 ]=修改元素;        // arr [0]=5

3.数组元素遍历

 ​ ​ ​ ​ ​ 数组遍历:

  *格式:数组名.length        //获取元素个数,元素长度
    
  *范例:arr.length          //arr.length-1是索引长度

注意:

  ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​       **1、遍历指的是取出数据的过程,不要局限的理解为, 遍历就是打印!**

 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 2、i:索引

 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 3、arr[i] :元素


三、数组定义格式

 ​ ​ ​ ​ ​ 数组定义格式:

  * 格式1:数组类型 [] 数组名
  * 范例:  int[] array

  * 格式2: 数据类型  数组名 []
  * 范例:  int array []

 ​ ​ ​ ​ 扩展:打印数组名会出现一个地址值,该值的含义有如下

打印数组名各值的意思:

            [I@10f87f48  :  数组的内存地址

              @: 分隔符
              [: 当前内存空间是一个数组类型
              I: 当前空间中存储的数据是int类型
              10f87f48  : 十六进制地址值

在这里插入图片描述


       如果是打印字符数组的话,不会看到地址值,而是具体的内容
       
   原因:println()源码中会自动对字符数组进行遍历操作

在这里插入图片描述


四、数组静态初始化

1. 数组静态初始化含义

 ​ ​ ​ ​ ​ ​ ​ ​ ​ 静态初始化含义:

              指定元素,长度自动分配

2. 数组静态初始化格式

 ​ ​ ​ ​ ​ ​ ​ ​ ​ 静态初始化格式:

   *格式1:数据类型[] 数组名 = new 数据类型[] {元素1,元素2,..};
   *范例: int [] arr=new int[] {11,22,33};    //[]这里的里面不能加数字


   *格式2:数据类型[] 数组名 = {元素1,元素2...};   //推荐使用
   *范例:  int [] arr={11,22,33};
        

 注意:   
        double [] arr={12,20,5.2};    
      //这样子是可以的,单个整数或者带小数也一样可以

五、数组动态初始化

1. 数组动态初始化含义

 ​ ​ ​ ​ ​ ​ ​ ​ ​ 动态初始化含义:

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

2. 数组动态初始化格式

 ​ ​ ​ ​ ​ ​ ​ ​ ​ 动态初始化格式:

  
    * 格式: 数据类型 [] 数组名 =new 数据类型[数组长度];
                           
    * 范例:int [] arr=new int [3];  //【3】其实就是数组的元素个数



 注意:
 
    1.允许数组间进行赋值,赋值的是自己所记录的地址值

    2.当两个数组通过地址指向同一块内存空间的时候,只要有一个对空间的数据发生了修改,那么另外一个去查找的时候,找到的就是改变之后的那份数据

3. 数组动态初始化的默认值

在这里插入图片描述

                                              **例子:**

在这里插入图片描述
在这里插入图片描述


六、数组动态和静态初始化两种对比

1.静态初始化

 ​ ​ ​ ​ ​ ​ ​ ​ ​ 静态初始化:手动"指定数组元素",系统会根据元素个数,计算出数组的长度

   使用场景:需求中已经明确了要操作的具体数据,直接静态初始化即可

       例:将一班的学生的成绩存入数组中:11 , 22,33
                                               
            int [] arr={11,22,33};

1.动态初始化

 ​ ​ ​ ​ ​ ​ ​ ​ ​ 动态初始化:手动"指定数组长度",由系统给出默认初始化值

  使用场景:只明确元素个数,不明确具体数值,推荐使用动态初始化
                       
     例:使用数组容器来存储键盘录入的5个整数
                 
               int [] arr=new int[5];
               arr[0]=1;
               arr[1]=2;
               arr[2]=3;
               arr[3]=4;
               arr[4]=5;

七、空指针异常

 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 空指针异常:当引用数据类型变量被赋值为null之后,地址的指向被切断,还继续访问堆内存数据,就会引发空指针异常

  如:   int[] arr1 = null;
        System.out.println(arr1[0]);

在这里插入图片描述


八、数组索引越界异常

           当访问到了不存在的索引时,就会出现索引越界异常

在这里插入图片描述


九、数组内存图

1.数组内存分配

方法区:
          1.类的字节码文件加载时进入方法区
          
          2.jvm自动调用main方法(方法),进入栈内存执行       
             
                                //是jvm调用方法,不是栈调用的
          
栈内存: 方法运行进入的内存

堆内存:new出来的内容都会进入堆内存,开辟空间,产生地址值

在这里插入图片描述


2.两个数组指向相同内存的图

在这里插入图片描述


总结

          以上就是今天要讲的内容,本文介绍了一维数组的使用,以及相关的访问遍历,还有内存图相关的介绍。


作者:KJ.JK

本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

目录
相关文章
|
25天前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
31 4
|
25天前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
22 2
|
1月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
1月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
44 9
|
1月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
22 3
|
1月前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
26 6
|
1月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
23 1
|
1月前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
14 1
|
1月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
1月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
35 0