* 1.数组是什么?为什么使用数组?
* 比如我要统计每位员工的工资,我得定义多个变量去分开存储,因为一个变量只能保存一个数据,如果过多的员工,
* 太麻烦了,那么我怎么用一个变量去存储多个员工工资呢?
* 可以使用数组,数组就是一个大的容器,他可以存放多个值
* 2.什么是数组?
* 数组和变量差不多,都是存放数据的,不同的是变量只能保存一条数据,而数组可以保存多条数据
* 必须是同一类型的
* 数组是引用数据类型
*
* 3.如何定义数组?
* 数组类型[] 数组名;
*
* 如果定义好数组以后,必须要给数组进行初始化。
* 数组是一个引用数据类型
* 数组的初始化分为两种情况:
* (1).动态初始化:指定数组的长度,一旦长度指定,就是数组中只能存放多少数组
* 两种格式:
* 第一种:
* 数组类型[] 数组名=new 数组类型[数组长度];
* 第二种方式:
* 数组类型[] 数组名;
* 数组名=new 数组类型[数组长度];
* (2)静态初始化:不是指定数组长度,而是直接在初始化数组的同时给数组赋值
* 两种:
* 第一种:
* 数组类型[] 数组名=new 数组类型[]{数据1,数据2.....};
* 第二种:
* 数组类型[] 数组名;
* 数组名=new 数组类型[]{数据1,数据2.。。。};
*
* 还有一种最简单的方式:
* 数组类型[] 数组名={数据1,数据2....};
数组遍历
for(定义变量接受数组的每一个元素值:要遍历的数组名)
for(int a:array){
System.out.println(a);
}
数组分类
* 1.基本数据类型的数组
* 动态初始化数组以后,数组的元素都会赋予一个默认值
* byte short int long double float char boolean
* 0 0 0 0 0.0 0.0 空格 false
* 2.引用数据类型的数组
* String 接口 自己定义类.....
* 引用数据类型的默认值为null
* 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有关
逆序输出。
String[] str=new String[]{"C语言","C++","C#","Java","Python"};
for(int i=0;i<str.length/2;i++){
String temp=str[i];
str[i]=str[str.length-1-i];
str[str.length-1-i]=temp;
}
for(String s:str){
System.out.println(s);
}
* 冒泡排序(重点)
*
* 口诀(升序)
* n个数字来排队
* 两两相比小靠前
* 外层循环n-1
* 内层循环n-1-i 升序if用>
* 二维数组:数组中的数组
* 1.声明二维数组:
* 数据类型[][] 数据名;
* 第一个中括号:二维数组中有几个一维数组 行
* 第二个中括号:每个一维数组中有多少元素 列
*
* 2.初始化二维数组
* 第一种动态初始化 int[][] array=new int[5][7];
* 第二种静态初始化 int[][] array1=new int[][]{{1,2},{2,3,4},{5,9,89,1}}; 简写 int[][] array2={{4,90},{23,12},{12,23,45}};
//4.遍历二维数组
//外层循环控制行(每一个一维数组)
for(int i=0;i<array2.length;i++){
//内存循环控制的是列
for(int j=0;j<array2[i].length;j++){
System.out.print(array2[i][j]+" ");
}}使用增强for循环
for(int[] i:array2){
for(int a:i){
System.out.print(a+" ");
}}