零基础学Java—数组

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学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要笑着学👏👏👏👏

以上是关于零基础学Java—数组的主要内容,如果未能解决你的问题,请参考以下文章

零基础学Java—对象数组(十三)

零基础学Java—数组工具类Arrays(十七)

零基础学Java—多线程(四十九)

中国MOOC_零基础学Java语言_第5周 数组

零基础学Java从啥开始学?

零基础学python-2.7 列表与元组