数组的概念

数组是什么?为什么要应用数组?

1.数组用来将雷同数据类型存储在存储单元里,数组的所有元素必须属于雷同的数据类型
2.数组和变量差不多,都是存放数据的,不同的是变量只能保留一条数据,而数组能够保留多条数据。
3.数组既能够存储根本数据类型,也能够存储援用数据类型。
4.数组一旦初始化,长度不可变。长度确定下来了!!!。

5.比方我要统计每位员工的工资,我得定义多个变量去离开存储,因为一个变量只能保留一个数据,如果过多的员工,太麻烦了,那么我怎么用一个变量去存储多个员工工资呢?能够应用数组,数组就是一个大的容器,他能够寄存多个值。

如何定义数组?

数组类型[ ] 数组名;
数组类型 数组名[ ];

1.Java中的数组必须先初始化,而后能力应用。
2.所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
3.Java中能够应用关键字new创立数组对象,实现动态初始化或动静初始化。

数组初始化分为两种:

动态初始化;动静初始化;

动静初始化

动静初始化:指定数组的长度,一旦数组长度指定,就是数组中只能寄存多少数据。

第一种格局:
数组类型[ ] 数组名=new 数组类型[数组长度];
第二种格局:
数组类型[ ] 数组名;
数组名=new 数组类型[数组长度];

动态初始化

动态初始化:不是指定数组长度,而是间接在初始化数组的同时给数组赋值。

第一种格局:
数组类型[ ] 数组名=new 数组类型[]{数据1,数据2.....};
第二种格局:
数组类型[] 数组名;
数组名=new 数组类型[]{数据1,数据2.。。。};

还有一种最简略的形式:

数组类型[] 数组名={数据1,数据2....};

数组的遍历

应用for循环
    public static void main(String[] args) {        int[] array=new int[]{12,4,6,34,90,89,12};        //我想获取数组的每一个元素值        System.out.println(array[0]);        System.out.println(array[1]);        //...        //for应用循环  i代表的是数组的下标        System.out.println("应用for循环遍历数组");        for(int i=0;i<array.length;i++){            System.out.println(array[i]);        }

for循环增强版 foreach:
for(int a:array)

        System.out.println("foreach遍历数组");        /**         * for(定义变量承受数组的每一个元素值:要遍历的数组名)         * 数组遍历只有两种         */        for(int a:array){            System.out.println(a);

数组分类

根本类型的数组

动静初始化数组当前,数组的元素都会赋予一个默认值。
byte, short, int, long:默认0
double, float:0.0
char:空格
boolean:false

        //double类型        double[] d=new double[2];        System.out.println(d[0]);//0.0        System.out.println("=======================");

援用数据类型的数组

String; 接口; 本人定义的类...
援用数据类型的默认值为null。

        //String        String[] str=new String[4];        //null        for(String s:str){            System.out.println(s);        }
        //数组类型是Student类型        Student[] stu=new Student[1];        stu[0]=new Student("张三",18);        //创立了一个对象,并且给这个对象的属性赋值        for(int i=0;i<stu.length;i++){            System.out.println("姓名:"            +stu[i].getName()+",年龄:"+stu[i].getAge());            }

java的内存调配

java中的内存是怎么进行调配的?
内存的申请和开释都是jvm进行治理的,java程序要运行,jvm会主动的向电脑申请一块内存,
把这块内存分为5局部:
1.栈(Stack):次要寄存局部变量(重点)。
2.堆(Heap):但凡new进去的货色都在堆外面,堆当中的数据都有默认准则:(重点)。
整数 0 小数 0.0 布尔:false char:空格 援用数据类型:null。
3.办法区(Method Area):寄存的是与.class相干的信息。
4.本地办法区(Native Method Area):与操作系统无关。
5.寄存器(Register):与cup无关。

冒泡排序(重点)

口诀(升序)
n个数字来排队
两两相比小靠前
外层循环n-1
内层循环n-1-i

    public static void main(String[] args) {        //从大到小        int[] array={76,3,234,90,6,78,1,-1};                //外层循环管制趟数        for(int i=0;i<array.length-1;i++){            //内层管制次数            for(int j=0;j<array.length-i-1;j++){                //比拟  从大到小用<  小到大>                if(array[j]<array[j+1]){                    int temp=array[j];                    array[j]=array[j+1];                    array[j+1]=temp;                }                            }        }        for(int num:array){            System.out.println(num);        }

二维数组

二维数组;数组中的数组。

1.申明二维数组

数据类型[][ ] 数据名;
第一个中括号:二维数组中有几个一维数组 行
第二个中括号:每个一维数组中有多少元素 列

2.初始化二维数组
    public static void main(String[] args) {                //1.创立一个二维数组,并动静初始化        //5代表5行或者示意蕴含5个一维数组        //7代表7列或者示意每个一维数组的长度是7        int[][] array=new int[5][7];        //2.如何赋值        //第一个一维数组的第一个元素值为10        array[0][0]=10;        //第四个一维数组的第7个元素的值为5        array[3][6]=5;        //3.动态初始化        int[][] array1=new int[][]{{1,2},{2,3,4},{5,9,89,1}};        System.out.println(array1[2][2]);//89                //简写        int[][] array2={{4,90},{23,12},{12,23,45}};        System.out.println("获取二维数组的长度:"+array2.length);}        
3.遍历二维数组
//4.遍历二维数组        //外层循环管制行(每一个一维数组)        for(int i=0;i<array2.length;i++){            //内存循环管制的是列            for(int j=0;j<array2[i].length;j++){                System.out.print(array2[i][j]+" ");            }            System.out.println();        }        //加强for循环        for(int[] i:array2){            for(int a:i){                System.out.print(a+" ");            }            System.out.println();        }

2019/08/04