Java的第十天的学习
&和&&的异同
&逻辑与;&&短路与
数组常见的算法
需要掌握的有选择排序(堆排序)、交换排序(冒泡排序、快速排序)、归并排序。
数组冒泡排序法,实现数组的从小到大排序:
int[] arr = new int[]{42,65,1,23,12,4};
//冒泡排序
for(int i=0;i<length-1;i++){
for(int j=0;j<length-1-i;i++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
与数组有关的常用的操作方法
数组排序
数组拷贝:从一个数组之中拷贝部分内容到另外一个数组之中,方法为System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度)。
对象数组
对象数组的动态初始化
类名称 对象数组名称 = new 类名称()[长度];
如果使用了对象数组的动态初始化,则默认情况下,里面的每一个元素都是其对应的默认值null,都需要分别进行对象的实例化操作。
对象数组的静态初始化
类名称 对象数组名称 = new 类名称[]{实例化对象,实例化对象};
对象数组的最大好处:将多个对象统一进行了管理,只是除了数据类型改变之外,和之前的数组没有任何的区别。
数组中常见的异常有哪些?请举例说明
ArrayIndexOutOfBoundsException:数组角标越界异常:
合理范围:[0,arr.length-1]
越界:arr[-1],arr.[length]
NullPointerException:空指针异常
int[] arr = null;
arr[0];
数组的复制和数组的赋值是不一样的
数组赋值:array2=array1;
如何理解:将array1保存的数组的地址值赋给array2,使得它们共同指向用一个数组实体。
数组的复制:
array2 = new int[array1.length];
for(int i = 0; i < array2.length;i++)
{
array2[i] = array1[i];
}
如何理解:因为是重新new出来的,给array2在堆空间中开辟了数组的空间。它们是相互独立的,改变是不会受影响的。