(集合与IO)阶段测试题

[学习交流] 传智播客java基础班(集合与IO)阶段测试题

© zhaodecang 中级黑马   /  2016-6-8 19:38  /  653 人查看  /  7 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zhaodecang 于 2016-6-8 19:38 编辑
 

单选题:(每道题目2分)

1. ArrayList类的底层数据结构是(    )

a) 数组结构  b) 链表结构  c) 哈希表结构  d) 红黑树结构

 

 

List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。

ArrayList 构造一个初始容量为 10 的空列表

2. LinkedList类的特点是(    )

a) 查询快 b) 增删快  c) 元素不重复  d) 元素自然排序

链接列表实现。

3. Vector类的特点是(    )

a) 线程同步  b) 线程不同步  c) 增删快  d) 底层是链表结构

4. 关于迭代器说法错误的是(    )

a) 迭代器是取出集合元素的方式  b) 迭代器的hasNext()方法返回值是布尔类型  c) List集合有特有迭代器  d) next()方法将返回集合中的上一个元素

方法摘要
 boolean hasNext()
          如果仍有元素可以迭代,则返回 true。
 E next()
          返回迭代的下一个元素。

5. FileReader类描述正确的是(    )

a) 字节输入流  b) 字符输入流  c) 打印流  d) 序列化流

 

 

6. 具有readLine()方法的类是(    )

a) FileWriter  b) InputStreamReader  c) FileReader  d) BufferedReader

FileReader :字符输入流

FileWriter :字符输出流:

InputStreamReader (InputStrream  in)

read()

reader(char[] cbuf,int offset,int)  length)

是连接字节流通向字符流的桥梁

为了最高效率:

BufferReader in=

new  BufferReader(new InputStreamReader(System.in));

 

7. 关于newLine()方法描述错误的是(    )

a) newLine()方法写入换行  b) newLine()方法与操作系统平台无关  c) newLine()方法是FileWiter类的方法  d) newLine()方法是BufferedWriter类的方法

8. 下面代码运行的结果是(    )

ArrayList al = new ArrayList();al.add(true);

al.add(123);

al.add(“abc”);

System.out.println(al);

a) 编译失败  b) [true,123]  c) [true,123,abc];  d) [abc]; 

只能存储引用数据类型  boolean 是基本数据类型

 

9. 实现下列哪个接口,可以启用序列化功能(    )

a) Runnable接口  b) Comparable接口  c) Serializable接口  d) Comparator接口

 

Runnablle 是 实现线程

Comparable  自然排序: compareTo(T  o)  返回值 -1  ,0 , 1 

Serializable  序列化sort   Collections.sort  Arrays.sort

Comparator  强行对某个Collection 对象进行整体排序的比较,可以将

Comparator 传递给  

compare(T  o1,To2)

升序 :o1-o2

降序:o2-o1

 

 

10. 字节输出流的抽象基类是(     )

a) OutputStream  b) InputStream类  c) Writer类  d) Reader

OutputStream  字节输出流

InputStream   字节输入流

Writer  字符输出流

Reader 字符输入流

11. 下面程序的运行结果是(    )

  FileOutputStream fos = new FileOutputStream(“c:\\demo.txt”);

  fos.write(“abc”);

  fos.close();

a) 在C盘创建文件demo.txt,但文件是空的  b) 在C盘创建文件demo.txt,并写入数据abc  c) 将C盘已有的文件demo.txt中追加写入abc d) 编译失败

构造方法:  FileOutputStream(Outputstream  out)

write(byte[]   b)

write("abc".getBytes());

12. 将Map集合中的键存储到Set集合的方法是(    )

a) entrySet()  b) get()  c) keySet()  d) put()

keySet(): 返回包含键的Set视图

Set>  entrySet();

 

13. ArrayList和Vector的区别说法正确的是(    )

a) ArrayList是线程安全的,Vector是线程不安全  b) ArrayList是线程不安全的,Vector是线程安全的

c) ArrayList底层是数组结构,Vector底层是链表结构  d) ArrayList底层是链表结构,Vector底层是数组结构

 

ArrayList   Vector  是底层是可变长对象数组。ArrayList  线程不安全 ,Vector 是线程安全。

 

 

14. 将集合转成数组的方法是(    )

a) asList()  b) toCharArray()  c) toArray()  d) copy()

15. 对于增强for循环说法错误的是(     )

a) 增强for循环可以直接遍历Map集合  b) 增强for循环可以操作数组

c) 增强for循环可以操作Collection集合  d) 增强for循环是JDK1.5版本后出现的

16. 对于HashMap集合说法正确的是(     )

a) 底层是数组结构  b) 底层是链表结构  c) 可以存储null值和nulld) 不可以存储null值和null

HashMap 底层是  哈希表结构  :

JDK1.8之前:数组+单向链表

JDK1.8之后:数组+单向链表|红黑树(链表的长度超过8):提高查询的速度

17. 下面代码的运行结果是(     )

  ArrayList al = new ArrayList();

  al.add(“a”);

  al.add(“b”);

  al.add(“c”);

  Iterator it = al.iterator();

  while(it.hasNext()){

     String s = (String)it.next();

     if(s.equals(“c”)){

         al.add(“c1”);

     }

}

System.out.println(al)

a) [a,b,c]  b) [c1]  c) [a,b,c,c1]  d) 抛出ConcurrentModificationException异常

 

18. Properties类中的哪个方法可以和IO流相关联(     )

a) getProperty()  b) setProperty()  c) load()  d) stringPropertyNames()

 

public void load(InputStream inStream) : 从字节输入流中读取键值对

pro.load(new FileInputStream("read.txt")); 

19. 以下哪两个流对象可以实现任意类型文件的成功复制(     )

a) FileReader FileWriter  b) FileInputStream和FileOutputStream c) BufferedReadBufferedWriter  d) InputSteamReaderOutputStreamWriter

20. 使用字符流可以成功复制哪些文件(     )

a) 文本文件  b) 图片文件  c) 视频文件  d) 以上都可以复制

字节流 都可以

 

多选题:(每道题目3分)

21. 下列哪两个方法可以创建目录(     )

a) createNewFile()  b) createTempFile()  c) mkdir()  d) mkdirs()

22. 关于打印流PrintWriter说法正确的是(     )

a) 该流只操作数据目的,不操作数据源

b) 该流只操作数据源,不操作数据目的

c) 如果启用了自动刷新,该流调用println()方法时可以自动刷新

d) 该流是Writer的子类

 

23. 关于泛型的说法正确的是(     )

a) 泛型是JDK1.5出现的新特性

b) 泛型是一种安全机制

c) 使用泛型避免了强制类型转换

d) 使用泛型必须进行强制类型转换

24. 关于方法的递归算法,说法正确的是(    )

a) 递归就是方法自己调用自己

b) 递归的次数不能过大,否则会导致栈内存溢出

c) 使用递归算法,方法必须有返回值

d) 构造方法不可以使用递归算法

25. List集合的遍历方式有如下哪几种 (     )

a) Iterator迭代器实现

b) 增强for循环实现

  1.   get()和size()方法结合实现

d) get()和length()方法结合实现

简答题目:(每道题目3分)

26:ArrayList,Vector以及LinkedList的特点?

ArrayList:底层数据结构是数组,查询快,增删慢。线程不安全,效率高。

Vector: 底层数据结构是数组,查询快,增删慢。线程安全,效率低。

LinkedList: 底层数据结构是链表,查询慢,增删快。线程不安全,效率高。

27:HashMap和Hashtable的区别?

HashMap:线程不安全,效率高。允许null键和值。

Hashtable: 线程安全,效率低。不允许null键和值。

28:Collection和Collections的区别?

Collection:是单列集合的顶层接口。

Collections:是对集合进行操作的工具类。

29:IO流的分类,及抽象基类分别有哪些?

数据类型:字节流、字符流

字节流:InputStream,OutputStream

字符流:Reader,Writer

30:什么是序列化,如何实现序列化,什么是反序列化?

序列化:把对象按照流一样的方式操作。

对象所属的类实现序列化接口。

反序列化:把流数据还原成对象。

编程题目:(每道题目10分)

31:ArrayList存储字符串并遍历

32:把c:\\a.txt复制到d:\\b.txt

33:把c:\\a.jpg复制到d:\\b.jpg  

逻辑思考题目:

A:为什么井盖是圆的?

不容易掉下去。

容易搬运。

B:我有8个小球,颜色,大小一致。其中的一个重量比较重,给你一个天枰,几次能找到这个重的球。

2次。分别拿3个球放在天平的两边,如果天平平衡,则再称剩余的两个球;如果天平不平衡,则把重的一边的3个球中任选2个球放在天平两边,若天平平衡,则剩余的那个

球是比较重的那个,若不平衡,则天平下沉的一端是那个重一些的球

【转自网络】稍有修改,如有不合理之处,请批评指教

你可能感兴趣的:(java)