第十天学Java(数组)

2020-03-27  本文已影响0人  Hoffnung_8164

回顾

    1、递归算法

        一个方法中,自己调用了自己

        递归方法一定要有出口,逐渐向出口靠近

    2、数组

        概念

            一组连续的内存空间,存贮多个相同数据类型的值

        注意点

            内存连续

            数据类型一直

            数组是引用类型的数据

        数组的使用

            1、创建数组

            2、使用数组:存储数据,访问数据

        语法规则

        创建数组

            方式一:数据类型【】 数组名= new 数据类型【长度】;

        使用数组

            数组名【index】,index:下标,固定从0开始的,0,1,2,.。。index-1;

        数组的遍历

            遍历:一次访问,从第一个元素,访问到最后一个元素

    1、使用循环来遍历数组

        for(int i=0;i<arr.length;i++){

    }

    2、for-each循环】、【扩展】

        增强for循环,JDK1.5的版本出现的

        特定的用法,专门用于获取数组中的每一个元素的值,不能给数组赋值

        语法结构:

            for(数据类型 变量名:数组名){

                Syste.out.println(变量名);

            }

       工作原理

            for(int e:arr){

                Syste.out.println(e);

            }

        int e:定义一个变量e

        依次获取数组的元素,赋值给e

    注意点:

        1、for-each只能获取数组的数据,但是不能给数组进行赋值

        2、for-each在代码这个层面。不能操作下标。

数组中的默认值

    

    数组中存储的默认值:

        数组中是有默认值的

            整数:0.

            小数:0.0

            字符:\u0000

            布尔:false

            其他:null

    数组的默认值,就是数组创建后,里面存储的默认的数据

        数组的引用存在在栈内存中,数组本身存在在堆内存中

        数组创建完,就有默认的数据了

    

    创建数组的其他语法

    动态创建数组,先创建数组,然后再根据下标一个一个存储数据

        A:先声明,在创建(分配内存空间)

            数据类型[] 数组名;

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

        B:声明并创建

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

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

            //静态创建数组,声明,创建,赋值,一起写完

        C: 声明,创建并赋值

            数据类型[] 数组名 = {数值1,数值2,数值3.。。。}

            =左边声明数组,=右边,会先根据{}中数据源的个数,然后再将{}中的数据,按照顺序存储进去

            完成了几件事

                1、先声明。int[] c

                2、根据{}中数组值的个数,开辟堆内存

                3、将{}中的数组值,依次按照顺序存入数组中

        D:声明,创建,并赋值

            数据类型[]  数组名 = new 数据类型[]{数值1,数值2,数值3.。。。}

    数组的地址转移

        Java中的数据分为两大类:

        基本类型:4中8类

        操作的都是数值本身

        引用类型:数组

        操作的是地址

        基本类型进行赋值:数值

        引用类型进行赋值:地址

    

    可变参数

        同一种类型的参数,类型固定的,但是个数是不固定的,个数可以为0到多个,可以为0

        语法的支持:

            数据类型 ... 参数名

            在方法中可变参数当数组使用

        注意事项:

            1、如果参数列表中,除了可变参数还有其它参数,可变参数要写在参数列表的最后

            2、一个方法中最多只能有一个可变参数

    数组的排序

            排序:数组是存储一组数据,而且这些数据都是有顺序的,但是数值本身是无序的

        排序:升序(数值从小到大),降序(数值从大到小)。

        排序

    1、冒泡排序:Bubble Sort

        思路:比较相邻的两个数,大的向后面去一位

自我总结

今天主要学习的重点是数组,也是比较重要的吧,今天也中招了一次,就是再给数组赋值的时候,原来是一起都要改变的,并不是只改变一个数组的值,改变的是地址指向的堆内存中所有对应的数组的值,写上代码看一下吧,不然都不知道在表达什么,大家可以看一下这段代码

int[] a = new int[3];

a[0] = 1;

a[1] = 2;

a[2] = 3;

int[] c = a;

c[0] = 100;

System.out.println(a[0]);

System.out.println(c[0]);

其实输出的都是100,并不是先输出1,在输出100,我一开始以为是这样的,但是当整个运行过程分析了之后,就发现其实输出的都是100

上一篇下一篇

猜你喜欢

热点阅读