目录
1.1 带标签的break、continue
1.2 数组
1.2.1 一维数组
1.2.2 二维数组
1.1 带标签的break、continue
break和continue同理,以下以break为例。
- 默认break:中断离自己最近的那一层循环
int count = 0; for(int i = 1; i < 4; i++) { for(int j = 1; j < 3; j++) { if(i * j == 4) { break; //中断的是初始条件变量为j的内层循环 } } count++; } System.out.println("外层循环次数:" + count); //3
- 带标签的break:中断标签指示的那一层循环
int count = 0; lable:for(int i = 1; i < 4; i++) { for(int j = 1; j < 3; j++) { if(i * j == 4) { break lable; //中断初始条件变量为i的那层循环 } } count++; } System.out.println("外层循环次数:" + count); //1
其中lable是用户自定义标识符。
- 静态初始化初始化
//数据类型[] 标识符 int[] myArray; //声明 myArray = new int[]{1,3,4,6}; //初始化
数组的初始化和数组元素的赋值 *** 作同时进行
- 动态初始化
String[] name = new String[5];
数组的初始化和数组元素的赋值 *** 作分开进行
- 其他正确定义写法
int myArray[]; int[] myArray1 = {1,2,3}; //类型推断
- 获取数组长度
//属性:length name.length; //name为数组名
- 数组元素默认初始化值
- 整型数组(byte、short、int):0
- 浮点型数组:0.0
- char类型:0或‘/u0000’(两者其实相同;非‘0’,ASCII码值为0)
- boolean型:false
- 引用数据类型(例如String):null(注意不带双引号)
- 内存解析
//对于代码: int[] arr = new int[]{1,2,3}; String[] arr1 = new String[4]; arr[1] = "刘德华"; arr[2] = "张学友";
执行完后内存情况如下图所示:
arr1 = new String[3];
执行完后如下图所示:
此时首地址为0x12ab的数组无人引用,成为垃圾,最终会在某个不确定的时间被垃圾回收机制回收。如果这些代码写在main中,作用域就为main,当代码都执行完后这些局部变量就没用了,也都会变成垃圾,最终都被回收。
- 因为数组的元素可以是引用类型,所以数组的元素仍可以为数组,这样就构成了多维数组
1.2.1 初始化
- 静态初始化
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
注意:int[] x,y[]; 相当于int[] x; int[] y[];
x是一维的,y是二维的
- 动态初始化
//方式1 String[][] arr2 = new String[3][2]; //方式2 String[][] arr3 = new String[3][];
//其他正确定义写法 String arr1[][] = new String[3][]; String[] arr2[] = new String[3][]; String[][] arr3 = new String[3][]; int[] arr4[] = {{1,2},{1,4,5}}; int[] arr5[] = new int[][]{{1,2},{1,4,5}};
1.2.2 数组长度及遍历
- 二维数组长度
int[] arr[] = new int[][]{{1,2},{3},{4,5,6}}; //arr.length = 3 //arr[0].length = 2
- 二维数组遍历
//双层for循环 for(int i = 0; i < arr.length; i++){ for(int j = 0; j < arr[i].length; i++){ System.out.print(arr[i][j] + " "); } System.out.println(); }
1.2.3 数组长度的默认初始化
- 定义了数组长度
int[][] arr = new int[4][3]; System.out.println(arr[0]); //一个地址值 System.out.println(arr[0][0]); //int数组的初始值:0
- 数组长度未定义完全
int[][] arr = new int[4][]; System.out.println(arr[0]); //null
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)