数组元素拷贝的原理?

  1. 复制数组操作
  2. @param src 源数组
  3. @param srcPos 源数组中的开始索引位置
  4. @param dest 目标数组
  5. @param destPos 目标数据中的开始索引位置
  6. @param length 要复制的数组长度
  7. public static void arraycopy(int[] src, int srcPos, int[] dest, int destPos, int length) {
  8. for (int i = 0; i < length; i++){
  9. dest[destPos + i] = src[srcPos + i];
  10. }
  11. }
  12. }

数组元素冒泡排序的原理?

  1. 对未排序的各元素从头到尾依次比较相邻两个元素的大小关系,如果前一个元素大于后一个元素则交换
  2. 位置,经过第一轮比较后可以得到最大值,同理第二轮比较后出现第二大值,以此类推,直到数组中数据有序。
  3. 针对int[] arr = new int[]{ 2, 9, 6, 7, 4, 1 }数组元素做排序操作:
  4. 1轮比较:需要比较5次,比较完出现第一个大值。
  5. 2轮比较:需要比较4次,比较完出现第二个大值。
  6. 3轮比较:需要比较3次,比较完出现第三个大值。
  7. 4轮比较:需要比较2次,比较完出现第四个大值。
  8. 5轮比较:需要比较1次,比较完出现第五个大值。
  9. 可以看出如有N个元素,则需要N-1轮比较,第M轮需要N-M次比较

数组元素二分查找的原理?

  1. 查找数组元素的算法:
  2. 线性查找:从头找到尾,性能比较低。
  3. 二分法查找(折半查找):前提数组元素是有序的,性能非常优异。

什么是API?什么时候需要使用API?如何使用?

  1. 封装在工具类中,我们把这种预先定义好的方法,称为API
  2. Arrays工具类中的方法,一般都是使用static修饰的。
  3. 打开JDK帮助文档,搜索Arrays类,进入该类的文档页面,去找toString方法,发现在Arrays类中有多个
  4. toString方法,他们之间属于重载关系,分别用于打印不同类型的数组

Arrays常用工具方法有哪些,使用时是否需要导入包?

  1. toString,copyOffsortbinarySearch。要导入包

如何方便的操作日期中的数据? Calendar中有哪些常用的方法?

  1. Calendar 日历类,其内部封装了一个long time 表示时间戳,其内部提供了方法通过对time计算出 年月日时分秒...等日历字段,这些字段都被存储到一个数组中,通过get(字段)可以去数组中提取对于字段的值。
  2. Calendar还提供了用来对日期做相加减,重新设置日期时间功能。
  3. Calendar本身是一个抽象类,通过getInstance方法获取对象,其底层创建的Calendar的子类对象

说说你对正则表达式的理解? 通常用在什么地方?

  1. 正则表达式,简写为regexRE/Re
  2. 正则表达式用来判断某一个字符串是不是符合某一种规则,在开发中通常用于判断检测操作、替换操作、分割操作等