Java基础 - Java中的数组

第一章 数组的定义和赋值
    1、数组的含义和特点
        含义:
            用于存放多个相同数据类型变量的容器,叫做数组.
        特点:
            a.引用数据类型(在内存当中存在地址值和默认值)
            b.存放的是数据类型相同的数据
            c.数组的长度一旦确定之后,在运行的过程当中不能改变.
    2、数组的初始化方式
        A.动态初始化
            a.含义: 
                只是给出数组的长度,并没有给出数组的具体值
            b.定义格式:  
                数据类型[] 数组名称 = new 数据类型[数组长度];
            c.例如:
                int[] arrayA = new int[10];                      //表示定义了一个int类型的数组,可以存放10个int数据
                boolean[] arrayB = new boolean[4];      //表示定义了一个boolean类型的数组,可以存放4个boolean数据
                String[] arrayC = new String[5];             //表示定义了一个String类型的数组,可以存放5个String字符串数据
        B.静态初始化
            a.含义:
                只是给出具体的数据值,长度由系统自己推算出来.
            b.定义格式:
                标准格式:  数据类型[] 数组名称 = new 数据类型[]{ 数值1,数值2,数值3...};
                简化格式:  数据类型[] 数组名称 = { 数值1,数值2,数值3...};    //推荐使用
            c.例如:
                标准格式案例:
                    int[] arrayA = new int[]{13,16,12,14};         //表示定义一个int数组,数值分别是13,16,12,14.长度系统自己算
                简化格式案例:
                    int[] arrayB = {13,16,12,14};                      //表示定义一个int数组,数值分别是13,16,12,14.长度系统自己算
        C.应用场景:
            如果你不知道数组当中,具体放哪些内容.但是你知道有多少.采用"动态初始化"
            如果你知道数组当中的具体内容,不去数数组数据的个数.采用"静态初始化",推荐使用"简化的格式"
        D.数组当中的元素访问
            格式:
                数组名称[索引值]
            例如:
                int[] arr = {13,15,12,11};          //定义了一个int类型的数组arr.值是 13,15,12,11
                arr[2]                                       //获取到的是数组索引值为2的元素.arr[2]=12
            注意:
                数组的索引: 数组当中数据的编号.编号从0开始.最大编号是数组的长度-1
    3、数据类型的默认值(了解)
        A.基本数据类型
            a.整数 byte,short,int,long        0
            b.浮点数 float,double            0.0
            c.字符 char                        '\u0000'
            d.布尔 boolean                     false
        B.引用数据类型
            所有的引用数据类型默认值都是 null
            
    
第二章 数组的内存图
    1、Java的内存分配
        A.栈(Stack)       存放局部变量,方法的运行是在栈当中
        B.堆(Heap)        存放new出来的东西,有地址值和默认值
        C.方法区(Method Area)
        D.本地方法栈(Native Method Stack)
        E.寄存器(PC Register)
    2、两个数组指向同一个地址(理解即可)
        A.生活实例:
            你和你的同桌共用一个水杯,他喝了一口,你看到少了一口,再往里面加一口,他看到多了一口.然后再喝一口
        B.含义:
            两个引用数据类型,指向同一个堆内存的地址.
            如果其中一个引用数据类型,对堆内存当中的数据进行了修改.
            那么两个引用数据类型,将同时发生修改.
    3、数组操作的两个常见小问题
        A.数组索引越界异常
            a.单词: ArrayIndexOutOfBoundsException  数组索引越界异常
            b.原因: 访问了不存在索引.(可能是负数,可能是大于等于数组长度的数据)
            c.解决: 修改索引值.改为存在的索引
        B.空指针异常
            a.单词: NullPointerException 空指针异常
            b.原因: 没有new
            c.解决: 补上new


            
第三章 数组的基本操作
    1、数组的长度
        获取数组长度的方式:
            数组名称.length
        例如:
            int[] arr = {15,12,17,14,11};  //定义了一个int类型的数组
            System.out.println(arr.length); //打印的结果是 5
        注意:
            数组的长度,也就是数组当中元素的个数.
    2、数组的遍历
        A.遍历的含义:
            把数组当中的元素,无重复无遗漏的打印出来.就叫遍历.
        B.格式:
            for(int i=0;i<arr.length;i++){
                System.out.println(arr[i]);
            }
        C.快捷键:
            数组名称.fori
            array.fori
    3、求最值的操作
        步骤:
            a.在循环前. 赋值   int max = arr[0];
            b.在循环中. 交接   判断,每一个比较.   max = arr[i];
            c.在循环外. 打印   System.out.println(max);
     
        
第四章 数组和方法结合的返回值与参数问题
    1、数组作为方法的参数传入
        本质: 
            如果数组作为方法的形式参数传入.写在方法的小括号上面.传递的是地址值
        例如:
            //这里方法的形式参数是 int[] arr
            public static void printArray(int[] arr){
                
            }
            //如果去调用方法
            int[] arr = {11,22,33,44};
            printArray(arr);            //传入的是arr.本质是地址值
    2、数组作为方法的返回值返回
        本质: 
            如果数组作为方法的返回值返回.写在方法名的前面.返回的是地址值
        例如:
            //这里的方法返回值写 int[]
            public static int[] jiSuan(){
                int[] arr = {10,20};
                return arr;
            }
            //如果此时此刻调用方法
            int[] result = jiSuan();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值