国庆大礼包作答

一、简答题(每道题10分,共50分)
1.Collection、List、HashMap哪个是接口?描述下他们的作用?
答:Collection,List是接口。Collection是最基本的集合接口,一个Collection代表一组对象的集合。无论Collection实际类型是什么,都支持iterator()方法来对其中的对象进行逐一访问。由Collection接口派生的两个接口是List和Set。

List是有序集合。常用的实现类有:ArrayList,LinkedList和Vector。
与set的区别:
(1) 重复对象
List允许插入重复的对象,而set不允许重复的对象。
(2)null元素
List允许插入多个null元素,而set只允许插入一个null元素。
(3)容器是否有序
list是一个有序的容器,保持了每个元素的插入顺序。即输出顺序就是输入顺序,而set是无序容器,无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable 维护排序顺序

HashMap是基于哈希表的一个Map实现类,用来存储键值对的集合。其中的每一个元素都包含一个键对象和一个值对象。
HashMap中只能有一个key值为null的映射(因为key值不能重复),value值可以为null。

2.String、StringBuffer、StringBuilder区别与联系?
答:String的值是不可变的,因此在每次对String类型的值进行操作的时候都等同于生成了新的String对象。这样效率低下,并且浪费了大量的内存空间。因此一般使用StringBuffer类和StringBuild类来对需要经常变化的字符串进行处理。
StringBuffer和StringBulider都继承自AbstractStringBuilder
StringBuffer:可变字符序列,效率低,线程安全。
StringBuilder:可变字符序列,效率高,但线程不安全。
值得注意的是,String可以赋值为null,但StringBuffer不可以。
总结:
(1)如果要操作少量的数据用 String;
(2)多线程操作字符串缓冲区下操作大量数据 StringBuffer;
(3)单线程操作字符串缓冲区下操作大量数据 StringBuilder。

3.字节流与字符流的区别?
答:字节流可用于处理二进制文件,而字符流不能直接处理二进制文件,但字符流用于处理文本文件效率更高。读写的时候字节流是按字节来读写,字符流是按字符来读写。

4.线程的生命周期的六种状态分别是什么,对各个状态进行说明?
答:六种状态分别是: new(初始化状态),Runnable (可运行/运行状态),Blocked (阻塞状态),Waiting (无时间限制的等待状态),Timed_Waiting (有时间限制的等待状态),Terminated(终止状态)。

new(初始化状态)指的是在刚刚创建线程时的状态。
Runnable (可运行/运行状态)指的是初始化状态的线程在调用start()方法后,即可进入Runnable状态
Blocked (阻塞状态):当被synchronized修饰的方法或代码块在同一时刻只有一个线程在执行,而其余的线程都处在Blocked状态。
Waiting (无时间限制的等待状态)三种情况会使得Runnable状态到waiting状态
1.调用无参的object.wait()方法。等到notifyAll()或者notify()唤醒就会回到Runnable状态。

2.调用无参的Thread.join()方法。也就是比如你在主线程里面建立一个线程A,调用A.join(),那么你的 主线程是得等A执行完了才会继续执行,这是你的主线程就是等待状态。

3,调用LockSupport.park()方法。LockSupoort是java6引入的一个工具类java并发包中的锁都是基 于它实现的,再调用LockSupport.unpark(Thread thread),就会回到Runnable状态。
Timed_Waiting (有时间限制的等待状态):和waiting就是有没有超时时间的差别
Terminated(终止状态):在线程正常运行结束后或者运行中异常了就进入了终止状态。
5.HashMap和HashTable的区别,ArrayList与Vector的异同?
答:Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类,但二者都实现了Map接口。Hashtable 线程安全,HashMap为什么是线程不安全。
ArrayList线程不安全但效率高,Vector线程安全但效率稍低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值