一、Java基础语法(5):数组

Tags:黑马Java->SE基础班->Java基础语法


1. 初始化

  • 动态初始化(指定长度)
  • 静态初始化(指定内容)
动态初始化数组的格式:

数据类型[] 数组名称 = new 数据类型[数组长度];

int[] arrayA = new int[300];

开始的int[]可以看作一种变量类型

静态初始化基本格式:

数据类型[] 数组名称 = new 数据类型[] { 元素1, 元素2, ... };

int[] arrayA = new int[] { 5, 15, 25, 40 };
String[] arrayB = new String[] { "Hello", "World", "Java" };
省略格式:

数据类型[] 数组名称 = { 元素1, 元素2, ... };

int[] arrayA = { 10, 20, 30 };

注意:静态初始化标准格式、动态初始化都可以拆分成为两个步骤,但是静态初始化省略格式不行

public class Demo03Array {

    public static void main(String[] args) {
        // 省略格式的静态初始化
        int[] arrayA = { 10, 20, 30 };

        // 静态初始化的标准格式,可以拆分成为两个步骤
        int[] arrayB;
        arrayB = new int[] { 11, 21, 31 };

        // 动态初始化也可以拆分成为两个步骤
        int[] arrayC;
        arrayC = new int[5];

        // 静态初始化的省略格式,不能拆分成为两个步骤。
//        int[] arrayD;
//        arrayD = { 10, 20, 30 };
    }

}

2. 默认值

使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。规则如下:

  • 如果是整数类型,那么默认为0
  • 如果是浮点类型,那么默认为0.0
  • 如果是字符类型,那么默认为'\u0000'(这不是多个字符,这是一个字符,\u是Unicode,在Unicode中十六进制数字0000代表的就是字符类型,这是一个不可见,而且并不是空格的意思,如果打印是看不见的)
  • 如果是布尔类型,那么默认为false
  • 如果是引用类型,那么默认为null

3. Java中的内存划分

一、Java基础语法(5):数组_第1张图片
内存划分
一个数组的内存图
一、Java基础语法(5):数组_第2张图片
一个数组的内存

创建一个新数组

一、Java基础语法(5):数组_第3张图片
新数组

4. 数组元素的反转

一、Java基础语法(5):数组_第4张图片
反转的思路
/*
数组元素的反转:
本来的样子:[1, 2, 3, 4]
之后的样子:[4, 3, 2, 1]

要求不能使用新数组,就用原来的唯一一个数组。
 */
public class Demo07ArrayReverse {

    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("============");

        /*
        初始化语句:int min = 0, max = array.length - 1
        条件判断:min < max
        步进表达式:min++, max--
        循环体:用第三个变量倒手
         */
        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基础语法(5):数组)