Java基础笔记14——数组

数组:一种引用类型的数据

一、特点:

1.指定数据类型 2.指定长度

二、声明可以有两种方式:

(1)数据类型 数组名[];

(2)数据类型[] 数组名;

三、创建:

数组名 = new 数据类型[N];

四、声明的同时创建:

数据类型 数组名[] = new 数据类型 [N];

五、声明的同时完成初始化:

(1)动态初始化:使用new创建数组后,所有元素已经被初始化,元素都是默认值
数据类型 数组名[] = new 数据类型 []{元素1, 元素2 , 元素3...};
(2)静态初始化:不使用new,而是在声明的同时完成创建和初始化工作
数据类型 数组名[] = {元素1, 元素2 , 元素3...};

六、赋值:

数组名[索引] = 值;

七、取值:

数组名[索引]

八、属性:

length:获取数组长度(元素个数)

九、遍历:

(1)使用for循环遍历

for (int i = 0; i < 数组名.length; i++) {
System.out.println(数组名[i]);
}

(2)使用forEach遍历

for(数组数据类型 变量名: 数组){
System.out.prinln(变量名);
}

十、常见的错误:

(1)java.lang.NullPointerException(空指针异常)
(2)java.lang.ArrayIndexOutOfBoundsException(数组下标越界异常)

十一、栈和堆:

stack(栈):由系统分配,大小限制,先进后出
一般用于保存基本数据类型的局部变量与引用类型的地址值
heap(堆):由程序员控制,当使用new关键字时,开辟heap(堆)内存空间,用于保存引用对象的元素的值,先进先出
一般用于保存引用对象的属性值或数组的元素值

 十二、例子:

package com.lqh.chapter01;

public class _12array {
    public static void main(String[] args) {
        //1.声明
        int[] int_list = null;
        //开辟stack(栈)内存空间,用于保存引用对象的地址值,此时地址为null
        System.out.println(int_list);
        //System.out.println(int_list.toString());//空指针异常,不能使用对象中的任何方法,因为此时地址为null
        
        //2.创建关键字时,开辟heap(堆)内存空间,用于保存引用对象的元素的值
        int_list = new int [5];    //使用new
        System.out.println(int_list);//[I@123a439b
        
        //3.声明的同时创建
        String[] str_list = new String[10];
        
        //4.声明的同时完成初始化
        double[] double_list = new double[] {1.2,3.2,3.4,2.1,5.3};
        double[] double_list2 = {1.2,3.2,3.4,2.1,5.3};
        
        //5.赋值
        int[] int_list2 = new int [3];
        int_list2[0] = 0;
        int_list2[1] = 1;
        int_list2[2] = 2;
        
        //6.取值
        System.out.println(int_list2[0]+"\t"+int_list2[1]+"\t"+int_list2[2]);
        //System.out.println(int_list2[4]);//数组下标越界异常,因为数组长度为3,下标是从0-3
        
        //7.属性
        System.out.println("int_list2数组的长度为:"+int_list2.length);
        
        //8.遍历
        //(1)for循环遍历数组
        for (int i = 0; i < int_list2.length; i++) {
            System.out.println("数组的第"+(i + 1)+"个元素:"+int_list2[i]);
        }
        //(2)使用forEach遍历
        int i = 0;
        for(int elment: int_list2) {
            i++;
            System.out.println("数组的第"+i+"个元素:"+elment);
        }
    }
}

输出结果为:

null
[I@123a439b
0 1 2
int_list2数组的长度为:3
数组的第1个元素:0
数组的第2个元素:1
数组的第3个元素:2
数组的第1个元素:0
数组的第2个元素:1
数组的第3个元素:2

posted @ 2021-09-14 19:40  `青红造了个白`  阅读(28)  评论(0编辑  收藏  举报