【零基础学Java】—数组(五)

简介: 【零基础学Java】—数组(五)

🐱‍🏍 一、Java的内存划分

二、🐱‍🏍一个数组的内存图

/**
 * @author :CaiCai
 * @date : 2022/4/5 11:03
 */
public class Demo05Array {
    public static void main(String[] args) {
        //动态初始化数组
       int[] array=new int[3];
        System.out.println(array);//地址值
        System.out.println(array[0]);//0
        System.out.println(array[1]);//0
        System.out.println(array[2]);//0
        //改变数组当前的元素
        array[1]=10;
        array[2]=20;
        System.out.println(array[0]);//0
        System.out.println(array[1]);//10
        System.out.println(array[2]);//20
    }
 }

三、🐱‍🏍两个数组的内存图

/**
 * @author :CaiCai
 * @date : 2022/4/5 11:03
 */
public class Demo05Array {
    public static void main(String[] args) {
        //动态初始化数组
       int[] array=new int[3];
       System.out.println(array);//地址值
        System.out.println(array[0]);//0
        System.out.println(array[1]);//0
        System.out.println(array[2]);//0
        //改变数组当前的元素
        array[1]=10;
        array[2]=20;
        System.out.println(array[0]);//0
        System.out.println(array[1]);//10
        System.out.println(array[2]);//20
        System.out.println("==================");
        //动态初始化数组
        int[] array1=new int[3];
        System.out.println(array1);//地址值
        System.out.println(array1[0]);//0
        System.out.println(array1[1]);//0
        System.out.println(array1[2]);//0
        //改变数组当前的元素
        array1[1]=100;
        array1[2]=200;
        System.out.println(array1[0]);//0
        System.out.println(array1[1]);//10
        System.out.println(array1[2]);//20
    }
            }

四、🐱‍🏍两个引用指向同一个数组

五、🐱‍🏍数组索引越界异常

  • 数组的索引编号从0开始,一直到数组的长度减1
  • 如果访问数组元素的时候,索引的编号不存在,那么将会发生数组索引越界异常(ArrayIndexOutOfBoundsException)
  • 原因:索引编号写错了
  • 解决办法:修改成为存在的正确索引
/**
 * @author :CaiCai
 * @date : 2022/4/5 11:36
 */
/*
数组的额缩影从0开始,一直到数组的长度减1
如果访问数组元素的时候,索引的编号不存在,那么将会发生数组索引越界异常ArrayIndexOutOfBoundsException
原因:索引编号写错了
解决办法:修改成为存在的正确索引
 */
public class Demo06 {
    public static void main(String[] args) {
        int[] array={15,25,35};
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        //错误写法并不存在3号元素所以发生异常
        System.out.println(array[3]);//ArrayIndexOutOfBoundsException
    }
}

六、🐱‍🏍空指针异常

  • 所有的引用类型的变量都可以赋值为一个null值,但是代表其中什么都没有
  • 如果只是赋值了一个null 没有进行new创建那么将会发生空指针异常NullPointerException
  • 原因:忘记new
  • 解决办法:补上new
package Project45;
/**
 * @author :CaiCai
 * @date : 2022/4/5 11:46
 */
/*
      所有的引用类型的变量都可以赋值为一个null值,但是代表其中什么都没有
      如果只是赋值了一个null 没有进行new创建那么将会发生空指针异常NullPointerException
      原因:忘记new
      解决办法:补上new
 */
public class Demo07 {
    public static void main(String[] args) {
        int[] array=null;
       // array=new int[3];
        System.out.println(array[0]);//NullPointerException
    }
}

🐱‍🏍七、获取数组的长度

  • 数组名称.length
  • 这将会的到一个int数字,代表数组的长度
  • 数组一旦创建,程序运行期间,长度不可改变
/**
 * @author :CaiCai
 * @date : 2022/4/5 11:54
 */
/*
如何获取数组的长度
数组名称.length
这将会的到一个int数字,代表数组的长度
数组一旦创建,程序运行期间,长度不可改变
 */
public class Demo08 {
    public static void main(String[] args) {
        int[] arrayA=new int[3];
        int[] arrayB={10,20,30,40,7,8};
        int len=arrayB.length;
        System.out.println(len);
        System.out.println(arrayA);
        System.out.println("===============");
        int[] arrayC=new int[3];
        System.out.println(arrayC.length);//3
        arrayC=new int[5];
        System.out.println(arrayC.length);//5
    }
}

🐱‍🏍八、遍历数组

遍历数组:说的就是对数组当中的每一个元素挨个处理,默认处理的方式是打印输出

package Project45;
/**
 * @author :CaiCai
 * @date : 2022/4/5 12:58
 */
/*
遍历数组:说的就是对数组当中的每一个元素挨个处理,默认处理的方式是打印输出
 */
public class Dem09 {
    public static void main(String[] args) {
        int[] array={15,20,35,50,90};
        //使用 for循环
        for (int i = 0; i <array.length ; i++) {
            System.out.println(array[i]);
        }

🧨求数组元素当中的最大值

public class Demo10 {
    public static void main(String[] args) {
        int[] array={10,30,20,21,55,70};
        int max=array[0];
        for(int i=1;i<array.length;i++){
            if(array[i]>max){
                max=array[i];
            }
        }
        System.out.println("最大值是:"+max);
    }
}

🧨求数组元素当中的最小值

public class Demo11 {
    public static void main(String[] args) {
        //求出数组当中的最小值
         int[] array={20,60,50,32,11,9,5};
         int min=array[0];
         for(int i=1;i<array.length;i++){
             if(array[i]<min){
                 min=array[i];
             }
         }
         System.out.println("最小值是:"+min);
    }
}

🐱‍🏍九、数组元素反转

数组元素的反转,其实就是对称位置的交换

/**
 * @author :CaiCai
 * @date : 2022/4/5 13:17
 */
/*
 数组的反转
 本来的样子:[1,2,3,4]
 反转的样子:[4,3,2,1]
 要求不能使用新数组,就使用原来的唯一一个数组
 */
public class Demo12 {
    public static void main(String[] args) {
        int[] array={10,20,30,40,50};
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        System.out.println("=============");
for(int min=0,max=array.length-1;min<max;min++,max--){
    int temp=array[min];
    array[min]=array[max];
    array[max]=temp;
}
//再次打印遍历输出数组后来的样子
        for(int i=0;i<array.length;i++){
    System.out.println(array[i]);
        }
    }
}

Java要笑着学👏👏👏👏


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