茶百道面试面经(1面)

#软件开发笔面经#

6.20北京时间上午10点1面

简单自我介绍,项目介绍

-----------------------------开始问些简单八股(面试题精选)--------------------------

1. 哪些集合类是线程安全的?

  • vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。(推荐使用CopyOnWhiteArrayList,同步安全,写时复制,效率高)
  • statck:堆栈类,先进后出。
  • hashtable:就比hashmap多了个线程安全。(推荐使用ConcurrentHashMap,同步安全,分段锁,效率高)
  • enumeration:枚举,相当于迭代器。

2. 迭代器 Iterator 是什么?(遍历的另一方式,迭代器模式)

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

3. Iterator 怎么使用?有什么特点?

Java中的Iterator功能比较简单,并且只能单向移动:

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

4. Iterator 和 ListIterator 有什么区别?

  • Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。 
  • Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。 
  • ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。

------------------------------------over----------------------------------------------

#软件开发笔面经#
全部评论
进去可以天天喝奶茶吗
2 回复 分享
发布于 07-22 11:25 重庆

相关推荐

1 7 评论
分享
牛客网
牛客企业服务