数组元素拷贝的原理?
复制数组操作
@param src 源数组
@param srcPos 源数组中的开始索引位置
@param dest 目标数组
@param destPos 目标数据中的开始索引位置
@param length 要复制的数组长度
public static void arraycopy(int[] src, int srcPos, int[] dest, int destPos, int length) {
for (int i = 0; i < length; i++){
dest[destPos + i] = src[srcPos + i];
}
}
}
数组元素冒泡排序的原理?
对未排序的各元素从头到尾依次比较相邻两个元素的大小关系,如果前一个元素大于后一个元素则交换
位置,经过第一轮比较后可以得到最大值,同理第二轮比较后出现第二大值,以此类推,直到数组中数据有序。
针对int[] arr = new int[]{ 2, 9, 6, 7, 4, 1 }数组元素做排序操作:
第1轮比较:需要比较5次,比较完出现第一个大值。
第2轮比较:需要比较4次,比较完出现第二个大值。
第3轮比较:需要比较3次,比较完出现第三个大值。
第4轮比较:需要比较2次,比较完出现第四个大值。
第5轮比较:需要比较1次,比较完出现第五个大值。
可以看出如有N个元素,则需要N-1轮比较,第M轮需要N-M次比较
数组元素二分查找的原理?
查找数组元素的算法:
线性查找:从头找到尾,性能比较低。
二分法查找(折半查找):前提数组元素是有序的,性能非常优异。
什么是API?什么时候需要使用API?如何使用?
封装在工具类中,我们把这种预先定义好的方法,称为API。
Arrays工具类中的方法,一般都是使用static修饰的。
打开JDK帮助文档,搜索Arrays类,进入该类的文档页面,去找toString方法,发现在Arrays类中有多个
toString方法,他们之间属于重载关系,分别用于打印不同类型的数组
Arrays常用工具方法有哪些,使用时是否需要导入包?
toString,copyOff,sort,binarySearch。要导入包
如何方便的操作日期中的数据? Calendar中有哪些常用的方法?
Calendar 日历类,其内部封装了一个long time 表示时间戳,其内部提供了方法通过对time计算出 年月日时分秒...等日历字段,这些字段都被存储到一个数组中,通过get(字段)可以去数组中提取对于字段的值。
Calendar还提供了用来对日期做相加减,重新设置日期时间功能。
Calendar本身是一个抽象类,通过getInstance方法获取对象,其底层创建的Calendar的子类对象
说说你对正则表达式的理解? 通常用在什么地方?
正则表达式,简写为regex和RE/Re。
正则表达式用来判断某一个字符串是不是符合某一种规则,在开发中通常用于判断检测操作、替换操作、分割操作等