学习面试题Day05

时间:2023-03-09 03:31:19
学习面试题Day05
1、如何理解数组在Java中作为一个类?
Java的数组本质上是一个类,该类还保存了数据类型的信息。该类通过成员变量的形式来保存数据,并且通过[]符号,使用下标来访问这些数据。在处理基本类型数据时,数组保存的是变量的值,如果程序员未提供初始值,数组会把这些变量的值初始化为0;而处理引用类型时,数组保存的是数据的引用,如果程序员未提供初始值,数组会把这些变量的值初始化为null。
2、new Object[5]语句是否创建了5个对象?
答案为否。题目的语句其实是创建了一个数组实例,长度为5.每个数组元素的值均是null,并没有创建5个Object对象。如果需要创建5个Object对象,则需要为每个数组元素分别指定。
3、如何拷贝数组的数据?
使用System.arraycopy()方法,或者创建一个新的数组实例,然后把数据一一装填进去,不能用=赋值运算符。
4、二维数组的长度是否固定?
长度不固定。Java数组的长度是可以动态变化的,程序员可以任意扩展数组的维度,每一维度的元素个数都可以是不尽相同。
5、什么是集合?
集合是用来也只能用来存储其他对象的对象,代表了一种底层结构,用于扩展数组的功能。集合框架由一系列的接口和实现类组成,基本包括:列表(List)、集合(Set)、映射(Map)等,它们大多具有可迭代性和可比较性。
6、迭代器是什么?
迭代器,提供一种访问一个集合对象中各个元素的途径,同时又不需要暴露该对象的内部细节。Java通过提供Iterable和Iterator两个接口来实现集合类的可迭代性。迭代器主要的用法就是,首先用hashNext()作为循环条件;再用next()方法得到每一个元素;最后在进行相关的操作。
7、比较器是什么?
比较器是把集合或数组的元素强行按照指定方法进行排序的对象,它是实现了Comparator接口类的实例。如果一个集合元素的类型是可比较的(实现了Comparable接口),那么它就具有了默认的排序方法,比较器则是强行改变它默认的比较方式来进行排序。或者有的集合元素不可比较(没有实现Comparable接口),则可用比较器来实现动态的排序。
8、集合使用泛型带来了什么好处?
集合使用泛型以后,可以达到元素类型明确的目的,避免了手动类型转换的过程,同时,也让开发者更加明确容器保存的是什么类型的数据。
9、如何把集合对象中的元素进行排序?
对于没有排序功能的集合来说,都可以使用java.util.Collections.sort()方法进行排序,它除了集合对象以外,还需要提供一个比较器。如果列表中的元素全都是相同类型,并且这个类实现了Comparable接口,可以简单地调用Collections.sort()。如果这个类没有实现Comparator,就可以传递一个Comparator实例作为sort()的第二个参数进行排序。另外,如果不想使用默认的分类顺序进行排序,同样可以传递一个Comparator实例作为参数来进行排序。
10、如何使用随机存取文件RandomAccessFile类?
RandomAccessFile的使用思路主要包括以下一些项目:
(1)用length()方法获取文件的内容长度;
(2)用seek()方法随机的到达任何需要存取数据的地方;
(3)调用read()方法获取当前位置的数据,用write()方法写入数据;
(4)完成需要以后,调用close()关闭文件的打开。