昨天晚上跟朋友出去玩,搞得一堆事情没做完,今天空闲时间完全用来补昨天欠下的任务了.有人说最大的浪费就是社交,自己好自为之吧.
之前总是把数组变量声明和创建数组对象混淆,经过自己敲代码终于明白了.这里是变量的数据类型及对象的引用的问题.
import java.util.Arrays; public class ArrayTest3 { public static void main(String[] args) { Test3 Test3Object = new Test3(); // System.out.println(t1.x); System.out.println("arr1:"+Arrays.toString(Test3Object.arr1)); // t1.arr1[0]=1;//Exception in thread "main" java.lang.NullPointerException:空指针异常 System.out.println("arr2:"+Arrays.toString(Test3Object.arr2)); System.out.println("arr3:"+Arrays.toString(Test3Object.arr3)); System.out.println("length arr3:"+Test3Object.arr3.length); // t1.arr3[0]=1;//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 System.out.println("arr4:"+Arrays.toString(Test3Object.arr4)); System.out.println("arr5:"+Arrays.toString(Test3Object.arr5)); } } class Test3 { int[] arr1;//声明了一个数组变量,为引用类型.没有初始化,即没有引用数组对象. //创建数组对象一旦创建(new)所有元素初始化为默认值. int[] arr2=new int[1];//0 int[] arr3={};//长度为0的数组,与null不同 String[] arr4=new String[1];//null boolean[] arr5=new boolean[1];//false int x; void array() { // int[] array; // System.out.println(Arrays.toString(array));//Exception in thread // "main" java.lang.Error: 局部变量没有初始化 } }
import java.util.Arrays; public class sort { public static void BubbleSort(int[] array){ for(int x=0;x<array.length-1;x++){ for(int y=0;y<array.length-1-x;y++){ if (array[y]>array[y+1]) { int temp=array[y+1]; array[y+1]=array[y]; array[y]=temp; } } } } public static void InsertSort(int[] array) { for (int i = 1; i < array.length; i++) { for (int j = i; (j > 0) && (array[j] < array[j - 1]); j--) { swap(array, j, j-1 ); } } } public static void swap(int[] data,int a,int b) { int temp=data[a]; data[a]=data[b]; data[b]=temp; } public static void main(String[] args) { int[] arr={5,4,3,2,1}; System.out.println("array:"+Arrays.toString(arr)); // BubbleSort(arr); InsertSort(arr); System.out.println("after sort:"+Arrays.toString(arr)); } }
时间: 2024-11-11 16:57:57