Java数组01:数组的创建和使用

数组的定义

  • 数组是相同类型数据的有序集合
  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问,下标从0开始

数组的创建

首先必须声明数组变量,才能在程序中使用数组

数值有三种初始化,分别为静态初始化、动态初始化和默认初始化。因为数组是引用类型,因此和类一样,数组的元素相当于类的实例变量,在数组创建被分配空间以后,会被隐式的初始化

public class Hello {
    public static void main(String[] args) {
        int[] nums;  //数组的声明,数组类型int[]
        nums = new int[10];  //数组的创建,new对象
        int[] nums2 = new int[10];  //两步可以合成一步
        //动态初始化
        nums2[0] = 1;  //根据下标给数组赋值
        //静态初始化
        int[] num3 = {1, 2, 3, 4};  //也可以直接给数组赋值
        //默认初始化,值为0
        int[] num4 = new int[10];
        int sum = 0;
        for (int i = 0; i < num3.length; i++){  //.length方法获取数组的长度
            sum += num3[i];  //数组下标从0开始,因此最大是num3.length - 1,超出会发生数组越界错误
        }
        System.out.println(sum);
        System.out.println(num4[0]);
    }
}

内存分析

  • 栈:存放基本变量类型(包含数值)、引用对象的变量(只是该引用在堆里面的具体地址)
  • 堆:存放new的对象和数组,可以被所有线程共享,不会存放别的对象引用
    Java数组01:数组的创建和使用
  • 声明数组时,只是在栈中存放了一个数组名,只有在创建数组时,才会在堆中分配new对象的空间,此时栈中的数组名成为对象的引用

数组的基本特点

  • 数组的长度是确定的,一旦被创建,其大小不可再更改
  • 数组的元素必须是相同类型,不允许出现混合类型
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属于引用类型,数组本身就是对象,数组元素相当于对象的成员变量。无论其保存的是原始类型还是其他对象类型,数组对象本身是在堆中的

数组的使用

增强for循环(不常用)

public class Hello {
    public static void main(String[] args) {
        int[] num = {1, 2, 3, 4, 5};  //定义一个数组
        for (int i:num){  //从数组里依次取出值,类似Python语言的for...in结构
            System.out.println(i);
        }
    }
}

数组作为方法传参

public class Hello {
    public static void main(String[] args) {
        int[] arrays = {1, 2, 3, 4, 5};
        PrintArray(arrays);  //数组作为方法的参数
    }
    //打印数组元素
    public static void PrintArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++){
            System.out.print(arrays[i] + "\t");
        }
    }
}

数组作为返回值

public class Hello {
    public static void main(String[] args) {
        int[] arrays = {1, 2, 3, 4, 5};
        PrintArray(reverse(arrays));
    }
    //将数组元素反转
    public static int[] reverse(int[] arrays){  //注意返回值类型为int[]
        int[] newArrays = new int[arrays.length];
        for (int i = 0; i < arrays.length; i++){
            newArrays[arrays.length - 1 - i] = arrays[i];
        }
        return newArrays;  //数组作为返回值
    }
    //打印数组的元素
    public static void PrintArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++){
            System.out.print(arrays[i] + "\t");
        }
    }
}

Java数组01:数组的创建和使用

上一篇:Unity3D游戏开发初探—4.开发一个“疯狂击箱子”游戏


下一篇:(转)asp.net基础-HttpModule