数组的概述
    为什么使用数组
    定义30个学生存储学生信息

    学生的成绩排序
    学生1 学生2 学生3 学生4 .。。。。。。 学生30
    stu1…………………………………………………………………stu30


    数组是相同类型的数据按照顺序组成的一种引用数据类型
    数据类型:
    1、 基本数据类型
    2、 引用数据类型
    1、 类
    2、 接口
    3、 数组


    学习的内容:
    1、 一维数组
    2、 声明
    3、 创建
    4、 初始化
    5、 元素的引用
    6、 长度
    7、 数组的应用


    数组的语法格式
    数据类型[] 数组名;
    命名规则:数组名也是标识符,满足标识符的命名规则,而且如果一个单词就都是小写字母。如果是多个单词组成,从第二个单词开始,首字母都大写

    变量的声明的语法格式
    数据类型 变量名;


    数组的声明
    数据类型[] 数组名; Java定义的方式
    数据类型 数组名[]; 也是可以的,但是C语言里面用的是第二种方式




    int[] myIntArray; 整型数组
    int myIntArray[];

    char[] ch; 字符数组
    String[] strArray;字符串数组 对象数组


    数组的创建
    语法格式1:先声明后创建
    数据类型[] 数组名;
    数组名 = new 数据类型[数组长度];

    int[] arr;
    arr = new int[10];
    创建一个长度为10的整型数组


    举例子:int[] arr = new int[];错的,因为必须声明数组的长度
    double[] demo = new double[5]; 对的


    语法格式2:声明的同时创建数组
    数据类型[] 数组名 = new 数据类型[数组长度];
    int[] arr = new int[10];
    创建一个长度为10的整型数组



    数组在内存中 的存储时如何进行的?
    首先整型的数组的默认值都是0;数组名指向数组的第一个元素

    image.png


    局部变量和数组的默认值问题
    1、 之前和大家说过的局部变量方法的内部,他是没有默认值的
    2、 而数组是有默认值的,数组是对象


    数组的初始化
    声明数组的同时给数组赋值,叫做数组的初始化
    int[] arr = {1,2,3,4,5,6,7};
    数组的长度就初始化所给数组元素的个数


    数组的引用
    语法格式:
    数组名[下标]
    注意:下标是从0开始的

    例子:
    int[] a = {1,2,3,4,5,6,7,8,9,10};
    1 2 3 4 5 6 7 8 9 10
    a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]





    image.png
    如果取值的下标索引越界了,前面还是输出的但是后面胡报错
    1、 我们编写代码保存的过程就是javac的编译过程,并没有报错。
    2、 但是执行run as 时候报错,这是运行时报的错叫做


    案例:求数组元素的累加和

    案例:求数组元素的最大值

    增强型for循环
    又叫foreach循环
    int[] arr1 = {1,2,3,4,5};//int n
    for(int n:arr1){
    System.out.println(n);
    }

    如何将2个变量值进行互换
    image.png

    int a = 3,b = 5;
    int temp;
    temp=a;a = b;b=temp;

    image.png
    上述这个互换值问题得这个代码一定要记住了,笔试面试经常问。


    冒泡排序
    案例:实现对一组整数按照由小到大得顺序进行排序
    34 53 12 32 56 17
    我们需要将相邻得2个数进行比较,将最大的值放置到最后,次大得值放置到倒数第二个,以此类推。

    第一趟:34 12 32 53 17 56 5次
    第二趟:12 32 34 17 53 56 4
    第三趟:12 32 17 34 53 56 3
    第四趟:12 17 32 34 53 56
    第五趟:12 17 32 34 53 56