Java基础(二)流程控制和数组
流程控制break结束多重循环public static void main(String[] args) { outer: for(int i = 0; i < 5; i++) { for(int j = 0; j < 3; j++) { System.out.println("i的值为:" + i + " j的值为:" + j); if(j == 1) { break outer; } } } } //输出: //i的值为:0 j的值为:0 //i的值为:0 j的值为:1 当运行到 Contine忽略多重循环public static void main(String[] args) { outer: for(int i = 0; i < 5; i++) { for(int j = 0; j < 3; j++) { System.out.println("i的值为:" + i + " j的值为:" + j); if(j == 1) { continue outer; } } } } //输出 /* i的值为:0 j的值为:0 i的值为:0 j的值为:1 i的值为:1 j的值为:0 i的值为:1 j的值为:1 i的值为:2 j的值为:0 i的值为:2 j的值为:1 i的值为:3 j的值为:0 i的值为:3 j的值为:1 i的值为:4 j的值为:0 i的值为:4 j的值为:1*/ 与 break 类似,当运行到 数组类型基本使用首先明确一点,数组是是引用类型。 Java 数组既可以存基本数据类型,也可以存引用类型。数组一旦初始化,内存空间就固定下来,长度无法改变。 数组初始化方式: //静态初始化 //方式一 int[] intArr = {1,2,3,4}; //方式二 Object[] objArr = new Object[]{1,"Java","hello"}; //动态初始化 int[] intArr = new int[5]; 执行动态初始化时,只需指定空间大小,系统会自动分配初始值:
根据索引访问数组,数组提供了一个 public static void main(String[] args) { int[] arr = new int[]{1,4}; //通过属性length获取数组长度,遍历数组 for(int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } //foreach遍历数组 //使用foreach进行迭代时,不要对临时变量a再次进行赋值 //因为迭代过程,只是对数组元素逐一拷贝赋给a,改变a的值,不会影响数组元素 for(int a : arr) { System.out.println(a); } } 深入数组内存数组是一种引用类型,数组引用变量和数组元素在内存里是分开存放的。实际的数组对象被存储在堆(heap)内存中;如果数组引用变量是一个局部变量,那么它被存储在栈(stack)内存中。 如果数组类型是基本类型,则堆内存中的数组元素存储的是基本类型数据;如果数组类型是引用类型,则堆内存中的数组元素存储的是对象的引用(地址),该引用又指向实际存储的对象,例如:有一个 Students 数组,里面存储两个 Student 对象 zhang 和 lee,内存分配如下图。如果堆内存中数组对象不再有任何引用变量执行它,内存会被 GC 回收。 public static void main(String[] args) { int[] a = new int[]{1,4}; int[] b = a; //a和b指向的内存地址相同,指向同一个数组对象,改变b中元素,a也会变 System.out.println(a.hashCode()); //460141958 System.out.println(b.hashCode()); //460141958 } 多维数组多维数组的本质是将一个数组的引用变量作为元素存储到另一个数组中。多维数组也是一种引用类型, //二维数组当一维数组使用,相当于定义了一个含有4个int[]类型引用的数组,初始化时元素存null int[][] a = new int[4][]; int[][] b = new int[3][4]; //相当于下列代码,定义了一个含有3个int[]类型引用的数组,每个int[]数组大小为4,初始化时为0 int[][] b = new int[3][]; b[0] = new int[4]; b[1] = new int[4]; b[2] = new int[4]; //静态方式初始化二维数组 String[][] strArrays1 = new String[][] { new String[3],new String[]{"hello"} }; String[][] strArray2 = { new String[3],new String[]{"hello"} }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |