美文网首页
第十天学Java(数组)

第十天学Java(数组)

作者: Hoffnung_8164 | 来源:发表于2020-03-27 22:36 被阅读0次

    回顾

        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

    相关文章

      网友评论

          本文标题:第十天学Java(数组)

          本文链接:https://www.haomeiwen.com/subject/rniruhtx.html