java数组-一维数组

数组意义

-为了存储同种数据类型的多个值

数组概念

  • 数组是存储同一种数据类型多个元素的集合,也可以看成一个容器。
  • 数组可以存储基本数据类型,也可以存储引用数据类型。

数组定义格式

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

数组的初始化动态初始化*

  • 什么是数组的初始化
  • 如何对对象数组进行初始化
    • 动态初始化 只指定长度,由系统给出初始值
      • int[ ] arr = new int[ 5 ];
      • 注意:不同类型的数组的默认值:
        • 整数类型:byte,short,int,long默认初始化只都是0;
        • 浮点类型:float,double默认初始化只都是0.0
        • 布尔类型:Boolean默认初始化只都是false
        • 字符类型:char默认初始化值’\u0000’
          • char在内存中占的两个字节,是16个二进制位
          • \u0000,每一个0其实代表的是16进制的0,那么四个0就是代表16个二进制位
            • 例如:输出arr的值为(system.out.print(arr)):[I@19bb25a
              • [ 代表是数组,几个就代表几维
              • I 代表是int类型
              • @ 是固定的
              • 19bb25a 代表的是十六进制的地址值
    • 静态初始化 给出初始值,由系统决定长度
  • 静态初始化的格式:
    • 数据类型[ ] 数组名 = new 数据类型 [ 数组长度 ];(数据类型[ ] 数组名 = new 数据类型[ ] {元素1,元素2,…..})
    • 简易格式:数据类型[ ] 数组名 = {元素1,元素2,…..}

      1、int[ ] arr = new int[]{0,1,2,5,6};
      也可以(先声明再赋值):
      int [ ] arr ; //声明数组引用
      arr = {0,1,2,5,6};
      不可以:int[ ] arr = new int[ 5 ]{0,1,2,5,6};
      2、int[ ] arr = {0,1,2,5,6};注:这种必须声明和赋值一起。

java中内存分配及栈和堆的区别

  • 栈(先进后出):
    • 存储局部变量(局部变量:定义在方法声明上和方法中变量)
  • 堆:
    • 存储new出来的数组或对象
  • 方法区:
    • 面向对象
  • 本地方法区:
    • 和系统相关
  • 寄存器:
    • 给CPU用的
      解说图一:
      这里写图片描述
      解说图二:
      这里写图片描述

数组下标越界异常,访问到数组中不存在的索引:

public class TestArray {
    public static void main(String[] args){
        int[] array = new int[3];//动态初始化,创建3块连续的空间。
        System.out.println(array[5]);
    }
}

报的错误,数组越界异常或叫角标越界异常:
这里写图片描述

获取数组的最值:

public class TestArray {
    public static void main(String[] args){
        int[] array = new int[]{1,5,6,8,9};
        getMax(array);
    }

    public static void getMax(int[] array){
        int max = array[0];
        for (int i = 0; i < array.length; i++){
            if (max < array[i]) max = array[i];
        }
        System.out.println(max);
    }
}

数组的反转(首位调换)

代码:

public static void main(String[] args){
        int[] array = new int[]{1,5,6,8,9};
        reverseArray(array);
        printArray(array);
    }

    public static void reverseArray(int[] arr){
        //arr[0]与arr[arr.length - 1 - 0]交换
        for (int i = 0;i < arr.length / 2; i++){
            int temp = arr[i];
            arr[i] = arr[arr.length -1 - i];
            arr[arr.length-1-i] = temp;
        }
    }

    public static void printArray(int[] arr){
        for (int i = 0 ;i < arr.length; i++)
            System.out.println(arr[i]);
    }

根据所给的数据获取该值在数组中的索引

代码:

public static void main(String[] args){
        int[] array = new int[]{1,5,6,8,9};
        System.out.println(getIndex(array, 8));
    }

    public static int getIndex(int[] arr , int value){
        for (int j = 0; j < arr.length; j ++){
            if (arr[j] == value)
                return j;
        }
        return -1;
    }

猜你喜欢

转载自blog.csdn.net/weixin_39660593/article/details/80236060