java面试笔试谈
例一:
public class Inc { public static void main(String[] args) { Inc inc=new Inc(); int i=5; inc.fermin(i); i=i++;//temp=i;i++;i=temp; System.out.println(i); } void fermin(int i){ i++; } }
结果是:
5
例二:插入排序,数组越界
public class InsertSort{ public static int[] sort(int[] intArray){ int size=intArray.length; for(int i=1;i<size;i++){ for(int j=i;intArray[j]<intArray[j-1] && j > 0;j--) { int temp=intArray[j-1]; intArray[j-1]=intArray[j]; intArray[j]=temp; } } return intArray; } public static void main(String[] args){ int[] arr={2,5,7,1,6,11,3,8}; //插入排序 InsertSort.sort(arr); for(int i: arr){ System.out.println(i); } } }
结果:
java.lang.ArrayIndexOutOfBoundsException
打入两个断点,F6键调试。
修正版本如下:
public class InsertSort{ public static int[] sort(int[] intArray){ int size=intArray.length; for(int i=1;i<size;i++){ for(int j=i; j > 1&&intArray[j]<intArray[j-1];j--) { int temp=intArray[j-1]; intArray[j-1]=intArray[j]; intArray[j]=temp; } } return intArray; } public static void main(String[] args){ int[] arr={2,5,7,1,6,11,3,8}; //插入排序 InsertSort.sort(arr); for(int i: arr){ System.out.println(i); } } }
从小到大的一个排序。