企业真题

数组有没有 length() 这个方法? String 有没有 length() 这个方法?

来源:?蓝

  • 数组没有 length(),是 length 属性
  • Stringlength() 方法

为什么数组要从 0 开始编号,而不是 1

来源:中?支付

数组的索引,表示了数组元素距离首地址的偏离量。因为第 1 个元素的地址与首地址相同,所以偏移量就是 0。

数组有什么排序的方式,手写一下

来源:平?保险

常见的十大排序算法:

  1. 冒泡
  2. 插入
  3. 选择
  4. 随机快排
  5. 归并
  6. 希尔
  7. 堆排
  8. 桶排
  9. 计数
  10. 基数

实际使用的排序:

  • TimSort
  • 快排 + 插入

搞笑:

  • 猴子排序
  • 睡眠排序

二分算法实现数组的查找

来源:神舟?天软件

Arrays 类的排序方法是什么?如何实现排序的?

来源:阿??巴

拓展练习

写出一维数组初始化的两种方式

int[] arr = new int[5]; // 动态初始化
 
String[] arr1 = new String[]{"Tom", "Jerry", "Jim"}; // 静态初始化
 
// 数组一旦初始化,其长度就是确定的、不可修改:arr.length

写出二维数组初始化的两种方式

int[][] arr = new int[4][3]; // 动态初始化 1
int[][] arr1 = new int[4][]; // 动态初始化 2
 
int[][] arr2 = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8}}; // 静态初始化

不同类型的一维数组元素的默认初始化值各是多少

  • 整型:0
  • 浮点型:0.0
  • char:0
  • booleanfalse
  • 引用类型:null

高维数组的内存解析

内存解析

数组中常见的异常有哪些?请举例说明

ArrayIndexOutOfBoundsException:索引越界

// 合理范围:
[0, arr.length-1]
 
// 越界:
arr[-1]
arr[arr.length]

NullPointerException:空指针

int[] arr = null;
arr[0];