java数组
内存的划分:
1,寄存器。 2,本地方法区。 3,方法区。 4,栈内存。 存储的都是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放。 5,堆内存。 存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。 特点: 1,每一个实体都有首地址值。 2,堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数0.0或者0.0f, boolean false char '\u0000' 3,垃圾回收机制。
2,数组中常见的两个异常:ArrayIndexOutOfBoundsException NullPointerException
3,break:跳出。 break作用的范围:要么是switch语句,要么是循环语句。 记住:当break语句单独存在时,下面不要定义其他语句,因为执行不到。 break跳出所在的当前循环。 如果出现了循环嵌套,break想要跳出指定的循环,可以通过标号来完成。 continue:继续。 作用的范围:循环结构。 continue:结束本次循环,继续下次循环。 如果continue单独存在时,下面不要有任何语句,因为执行不到。
4,获取数组最值
1 import java.util.*; 2 18 3 class ArrayDemo4 { 4 //遍历数组的功能。 public static void printArray(int[] arr) { System.out.print("["); for(int x=0; x<arr.length; x++) { if(x!=arr.length-1) System.out.print(arr[x]+", "); else System.out.println(arr[x]+"]"); } } public static void main(String[] args) { int[] arr = {34,19,11,109,3,56}; 5 // int max = getMax_2(arr); // System.out.println("max="+max); 6 printArray(arr); 7 // selectSort(arr); // bubbleSort(arr); // Arrays.sort(arr); selectSort_2(arr); 8 printArray(arr); } 9 public static void swap(int[] arr,int a,int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } /* 冒泡排序。 */ public static void bubbleSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=0; y<arr.length-1-x; y++) { 10 19 11 if(arr[y]>arr[y+1]) { swap(arr,y,y+1); /* int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; */ } } } } 12 /* 选择排序。 */ public static void selectSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=x+1; y<arr.length; y++) { if(arr[x]>arr[y]) { swap(arr,x,y); /* int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; */ } } } } 13 public static void selectSort_2(int[] arr) { for(int x=0; x<arr.length-1; x++) { int num = arr[x]; int index = x; for(int y=x+1; y<arr.length; y++) { if(num>arr[y]) { num = arr[y]; index = y; 14 20 15 } } if(index!=x) swap(arr,x,index); } } 16 /* 获取数组中的最大值。 思路: 1,需要进行比较。并定义变量记录住每次比较后较大的值。 2,对数组中的元素进行遍历取出,和变量中记录的元素进行比较。 如果遍历到的元素大于变量中记录的元素,就用变量记录住该大的值。 3,遍历结果,该变量记录就是最大值。 17 定义一个功能来是实现。 明确一,结果。 是数组中的元素。int . 明确二,未知内容。 数组. */ public static int getMax(int[] arr) { //定义变量记录较大的值。 int maxElement = arr[0];//初始化为数组中的任意一个元素。 for(int x=1; x<arr.length; x++) { if(arr[x]>maxElement) maxElement = arr[x]; } return maxElement; } public static int getMax_2(int[] arr) { //定义变量记录较大的值。 int maxIndex = 0;//初始化为数组中任意一个角标。 for(int x=1; x<arr.length; x++) { if(arr[x]>arr[maxIndex]) maxIndex = x; } return arr[maxIndex]; } }