Java面试题(3)

8.IO流分为几种

1. 按功能:输入流(input)、输出流(output)

2. 按类型:字节流、字符流 (1)字节流和字符流的区别 字节流( InputStream 、 OutputStream )按 8 位传输,以字节为单位输入输出数据,字符流( Reader 、 writer )

按 16 位传输以字符为单位输入输出数据。

9.BIO、NIO、AIO 有什么区别?

BIO:同步阻塞式IO,传统IO,模式简单、使用方便、并发处理能力低

NIO:同步非阻塞式IO,BIO的升级,客户端和服务器通过Channel(通道)通讯,实现了多路复用。 三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器)

AIO:异步非阻塞式IO,NIO的升级,基于事件和回调机制

10.Files的常用方法有哪些

exists():检查文件路径是否存在、createFile():创建文件、createDirectory():创建目录、delete():删 除文件或目录、copy():复制文件、move():移动文件、size():查看文件数、read():读取文件、 write():写入文件

11.Collection和Collections有什么区别

Collection是一个顶级集合接口,他提供了对集合对象进行基本操作的通用方法,在java类库中有很多 具体实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承的接 口有List和Set。

Collections则是集合类的一个工具类,它提供了一系列静态方法,用于堆集合中元素排序、搜索以及线 程安全等各种操作。

排序 Collection List ArrayList LinkedList Vector Queue Set HashSet LinkHashSet TreenSet Map HashMap TreeMap 比 较 List Set Map 继 承 接 口 Collection Collection 常 见 实 现 类 ArryList、 LinkedList、 Vector HashSet、 LinkedHashSet、 TreeSet HashMap、HashTable 常 见 方 法 add、remove、 clear、get、 contains(包 含)、size add、remove、 clear、contains、size put、get、remove、clear、 containsKey(包含键)、 containsValue(包含值)、keySet、 values、size 元 素 可重复 不可重复(equals判 断) 不可重复 顺 序 有序 无序(实际上由哈希值 决定),但有支持排序 的实现类(TreeSet) 线 程 安 全 Vector线程安全 HashTable线程安全

void reverse(List list):对指定 List 集合元素进行逆向排序。

void shuffle(List list):对 List 集合元素进行随机排序(shuffle 方法模拟了“洗牌”动作)。

void sort(List list):根据元素的自然顺序对指定 List 集合的元素进行升序排序。

void swap(List list, int i, int j):将指定 List 集合中的 i 处元素和 j 处元素进行交换。

查找、替换 int binarySearch(List list, Object key):使用二分搜索法搜索指定的 List 集合,以获得指定 对象在 List 集合中的索引。如果要使该方法可以正常工作,则必须保证 List 中的元素已经处 于有序状态。

Object max(Collection coll):根据元素的自然顺序,返回给定集合中的最大元素。

Object min(Collection coll):根据元素的自然顺序,返回给定集合中的最小元素。

void fill(List list, Object obj):使用指定元素 obj 替换指定 List 集合中的所有元素。

int frequency(Collection c, Object o):返回指定集合中指定元素的出现次数。

int indexOfSubList(List source, List target):返回子 List 对象在父 List 对象中第一次出现 的位置索引;如果父 List 中没有出现这样的子 List,则返回 -1。

int lastIndexOfSubList(List source, List target):返回子 List 对象在父 List 对象中最后一次 出现的位置索引;如果父 List 中没有岀现这样的子 List,则返回 -1。 boolean replaceAll(List list, Object oldVal, Object newVal):使用一个新值 newVal 替换 List 对象的所有旧值 oldVal。

12.List、Set、Map之间的区别是什么

(1)说一下TreeSet

TreeSet是Set接口的实现类,它可以确保集合元素处于排序状态,并支持自然排序和定制排序。他的底 层是由TreeMap实现的,因此他也是非线程安全的,但是他内部元素的值不能为null。 (2.)说一下TreeMap

TreeMap底层存储采用与HashMap非常相似的键值对。区别在于TreeMap提供了以排序顺序存键值对 的有效方法,它是基于红黑树实现的。

13.HashMap和HashTable有什么区别

1. hashMap去掉了hashTable的contains方法,但是增加了containsKey、containsValue方法

2. hashTable是同步的,而hashMap是非同步的,效率比hashTable高

3. hashMap允许空键值,而hashTable不允许

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

射手座的程序媛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值