java集合、输入输出

判断题

1、File类内部封装的路径可以指向一个文件,也可以指向一个目录。 - [对 ]

2、在java语言中使用IO流进行文件的拷贝时可能会出现IO异常,必须对异常进行try{}catch(){}处理或者抛出异常。 - [对 ]

3、HashSet是Set接口的一个实现类,它所存储的元素是可重复的,并且元素都是无序的。 - [错 ] 解析:HashSet是Set接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。

4、HashMap集合迭代出来元素的顺序和存入的顺序是不一致的。如果想要存入顺序和迭代的顺序一致可以使用使用Java中提供的LinkedHashMap类,它是HashMap的子类

  • [ 对]

5、由于LinkedList的底层是链表实现的,所以他的增删比较快,查询比较慢。 - [ 对]

6、包装类可以将基本数据类型的值包装为引用数据类型的对象。 - [ 对]

7、StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。- [ 对]

8、List集合可以使用ListIterator接口中的方法进行元素的反向迭代。- [ 对]
9、String类的equals()方法比较的是两个字符串内容、“==”比较的是两个对象的地址值。 - [ 对]

选择题

1、下列关于foreach循环的描述,错误的是( )
A、foreach循环只能用于遍历数组或集合中的元素
B、foreach循环可以直接用于遍历Map集合中的元素
C、相当于传统for循环来说,foreach循环简化了书写
D、foreach循环遍历过程中不能对集合或数组元素进行修改
正确答案: B 我的答案:B得分: 3.1分

答案解析:数组或者实现Iterable接口的对象才能使用foreach循环,Map集合不符合要求,显然不能直接使用foreach循环。

增强型for循环使用须知:

  • [1、增强for循环只能用在数组或实现Interable接口的集合类上 2、如果遍历一个空的Map对象,for-each循环将抛出NullPointerException异常
    3、增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的。但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等
    4、增强型for循环只适合取数据,不会更改数据,如对更改数据有要求需要使用传统for循环方式) ]

2、下面关于List集合的描述中,哪一个是错误的( )
A、List集合是有索引的
B、List集合可以存储重复的元素
C、List集合存和取的顺序一致
D、List集合没有索引

解析: List集合允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引访问List集合中的元素,元素有序,即元素的存入顺序与取出顺序一致。

3 、下列关于java.io.FileOutputStream的说法错误的是( )
A、文件拷贝时,使用输入流读取的文件必须存在。否则抛出java.io.FileNotFoundException。
B、文件拷贝时,使用输出流进行文件写出的时候,目标文件名称可以与原文件不同名。
C、使用字节流进行文件的拷贝,文件既可以是文本文件也可以是图片、音频等文件。
D、使用IO流进行文件拷贝。文件大小不能超过20M,否则内存溢出。
正确答案: D 我的答案:D

答案解析:
只要对文件进行拷贝操作时,字节缓冲区定时刷新就不会出现内存溢出的现象。

Java 流(Stream)、文件(File)和IO

4阅读下面的程序
public class Example{
public static void main(String[] args) {
String[] strs = { “Tom”, “Jerry”, “Donald” };
// foreach循环遍历数组
for (String str : strs) {
str = “Tuffy”;
}
System.out.println(strs[0] + “,” + strs[1] + “,” + strs[2]);
}
}
下列选项中,程序的运行结果是( )
A、Tom,Jerry,Donald
B、Tuffy,Jerry,Donald
C、Tuffy,Tuffy,Tuffy
D、发生异常,输出异常信息
正确答案: A 我的答案:A得分: 3.1分

答案解析:

当使用foreach循环遍历集合和数组时,只能访问集合中的元素,不能对其中的元素进行修改。但是像本题程序中那样尝试进行修改,并不会发生异常,只是对元素的修改不成功,集合或数组中的元素仍然是从前的值。

5、下列关于LinkedList的描述中,错误的是( )
A、LinkedList集合对于元素的增删操作具有很高的效率。
B、LinkedList集合中每一个元素都使用引用的方式来记住它的前一个元素和后一个元素。
C、LinkedList集合对于元素的查找操作具有很高的效率。
D、LinkedList集合中的元素索引从0开始。
正确答案: C 我的答案:C得分: 3.1分

答案解析:

由于LinkedList是双向循环链表结构,他的增删操作效率高但是查询操作没有ArrayList高。

6、Java语言中,集合类都位于哪个包中( )
A、java.util
B、java.lang
C、java.array
D、java.collections
正确答案: A 我的答案:A得分: 3.1分

答案解析:

集合类都位于java.util包中。

7、以下选项中,哪个是FileInputStream的父类( )
A、File
B、FileOutput
C、OutputStream
D、InputStream
正确答案: D 我的答案:D得分: 3.1分

答案解析:

FileInputStream是用来读取文件的字节流,属于InputStream类的子类。

8、下列选项中,不属于FileReader类的方法的是( )
A、read()
B、close()
C、readLine()
D、toString()
正确答案: C 我的答案:C得分: 3.1分

答案解析:

FileReader类中的read()和close()方法继承自
InputStreamReader,toString()继承自Object类。

9、FileWriter类的write(int c)方法的作用是( )
A、写出单个字符
B、写入多个
C、写入一个整形数据
D、写入单个字符
正确答案: D 我的答案:A得分: 0.0分

答案解析:

write(int c)方法用于写入单个字符。

10、使用FileReader读取reader.txt文本文件中的数据,reader.txt中的内容为:abc
import java.io.*;
public class Example01 {
public static void main(String[] args) throws Exception {
FileReader reader = new FileReader(“reader.txt”);
int ch;
while ((ch = reader.read()) != -1) {
System.out.print(ch+" ");
}
reader.close();
}
}
运行以上程序的结果是( )
A、编译出错
B、abc
C、979899
D、无输出
正确答案: C 我的答案:C得分: 3.1分

答案解析:

字符输入流的read()方法返回的是int类型的值,如果想获得字符就需要进行强制类型转换,在程序中将变量ch转为char类型再打印。

11、以下关于File类的isDirectory ()方法的描述,哪个是正确的( )
A、判断该File对象所对应的是否是文件。
B、判断该File对象所对应的是否是目录。
C、返回文件的最后修改时间。
D、在当前目录下生成指定的目录。
正确答案: B 我的答案:B得分: 3.1分

答案解析:

isDirectory()方法用于判断File对象是否为文件夹,返回值为boolean类型。

12、以下选项中,哪个是File类中isFile()方法返回值的类型()
A、int
B、boolean
C、Integer
D、String
正确答案: B 我的答案:B得分: 3.1分

答案解析:

isFile()方法表示判断File对象是否是标准文件,其返回值类型是boolean。

13、下列选项中,哪个可以正确地定义一个泛型( )
A、ArrayList < String > list = new ArrayList< String >();
B、ArrayList list < String > = new ArrayList ();
C、ArrayList list< String > = new ArrayList< String >();
D、ArrayList< String > list = new ArrayList ();
正确答案: A 我的答案:A得分: 3.1分

答案解析:

在定义集合类时,可以使用“<参数化类型>”的方式指定该类中方法操作的数据类型,具体格式如下: ArrayList<参数化类型> list =
new ArrayList<参数化类型>();

14、File类中以字符串形式返回文件绝对路径的的方法是( )
A、getName()
B、getParent()
C、getPath()
D、getAbsolutePath()
正确答案: D 我的答案:D得分: 3.1分

答案解析:

getPath()表示获取File对象的相对路径 getName()表示获取File对象的名称
getParent()表示获取File对象的父级目录的路径

15、下列说法中,关于在Java中删除目录说法错误的是( )
A、在Java中删除目录是从虚拟机直接删除不走回收站,文件将无法恢复
B、File类的delete()方法不允许对还有子文件的目录直接删除
C、delete()方法可以删除一个指定的文件
D、在删除目录时,先删除这个目录再删除该目录下的所有文件
正确答案: D 我的答案:D得分: 3.1分

答案解析:

在删除目录时,删除完一个目录里的所有文件后,才能删除这个目录。

16、import java.util.*;
class HashSetDemo{
public static void main(String[] args){
HashSet hs = new HashSet();
hs.add(“abc”);
hs.add(“abc”);
System.out.println(hs);
}
}
下列选项中,哪一个是程序的运行结果( )
A、[abc]
B、[abc,abc]
C、编译失败
D、运行成功,无输出结果
正确答案: A 我的答案:A得分: 3.1分

答案解析:

Set集合中存储的是不重复元素。

17、阅读下列代码
import java.io.*;
public class Example{
public static void main(String[] args) throws Exception {
// 创建一个带缓冲区的输入流
BufferedInputStream bis = new BufferedInputStream(new ________(“src.txt”));
// 创建一个带缓冲区的输出流
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(“des.txt”));
int len;
while ((len = bis.read()) != -1) {
bos.write(len);
}
bis.close();
bos.close();
}
}
请说出程序中,下划线位置的答案( )
A、FileInputStream
B、File
C、InputStream
D、以上答案都不正确
正确答案: A 我的答案:A得分: 3.1分

答案解析:

BufferedInputStream需要接受一个InputStream对象,但是InputStream是抽象类,必须传入其实例化对象,FileInputStream是其实例化子类。所以这里选A。

18、下面关于java.util.HashMap类中的方法描述错误的是( )
A、containsKey(Object key)表示如果此映射包含对于指定的键,则返回true
B、remove(Object key)表示从此映射中移除指定键的映射关系(如果存在)
C、size()表示返回此映射中的键-值映射关系数
D、values()表示返回此映射所包含的键的Collection视图
正确答案: D 我的答案:D得分: 3.1分

答案解析:

values()表示返回此映射所包含的值的Collection视图,而不是键的Collection视图。

19、下面哪个对象不能直接获取java.util.Iterator迭代器进行迭代( )
A、java.util.HashSet
B、java.util.ArrayList
C、java.util.TreeSet
D、java.util.HashTable
正确答案:D 我的答案:D得分: 0.0分

答案解析:

java.util.Iterator可以对collection接口实现类进行迭代,HashTable不能被直接迭代。

20、下面关于字节流缓冲区的说法错误的是( )
A、使用字节流缓冲区读写文件是一个字节一个字节的读写。
B、使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据。
C、使用字节流缓冲区读写文件,可以大大的提高文件的读写操作。
D、字节流缓冲区就是一块内存,用于存放暂时输入输出的数据。
正确答案: A 我的答案:A得分: 3.1分

答案解析:

使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据,并保存在字节数组中,然后将字节数组中的数据一次性写入文件。

21、下列数据结构中,哪一个是ArrayList类的底层实现( )
A、数组结构
B、链表结构
C、哈希表结构
D、红黑树结构
正确答案: A 我的答案:A得分: 3.1分

答案解析:

ArrayList的底层是数组实现的。

22、下列关于集合的描述中,哪一个是错误的( )
A、集合按照存储结构可以分为单列集合Collection和双列集合Map。
B、List集合的特点是元素有序、元素可重复。
C、Set集合的特点是元素无序并且不可重复。
D、集合存储的对象必须是基本数据类型。
正确答案: D 我的答案:D得分: 3.1分

答案解析:

集合可以存储多种数据类型的数据,包括引用数据类型。

23、假设在E盘下的cn文件夹中有文件abc.txt,则下列代码的运行结果为( )
class Example {
public static void main(String[] args) {
File file = new File(“E:\cn”); // 这是一个代表目录的File对象
if (file.exists()) {
System.out.println(file.delete());
}
}
}
A、false文件夹删除不成功,abc.txt删除不成功
B、false文件夹删除不成功,abc.txt删除成功
C、true文件夹删除成功
D、true文件夹删除不成功,abc.txt删除成功
正确答案: A 我的答案:A得分: 3.1分

答案解析:

运行结果中输出了false,这说明删除文件失败了。因为File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小魔女千千鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值