每日五题(java基础)

来源:互联网 发布:mac玩魔兽世界怎么样 编辑:程序博客网 时间:2024/06/05 06:13

这些问题面试比较常见

1. String 和 StringBuffer,StringBuilder的区别

答:
简单地说,String和其余两者就是一个变量和常量的关系。StringBuffer和StringBuilder的对象的内容可以修改,始终为同一个对象;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
而StringBuffer和StringBuilder的区别在于StringBuffer支持并发操作,线性安全的,适 合多线程中使用。
StringBuilder不支持并发操作,线性不安全的,不适合多线程中使用。新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高。
对于三者使用的总结:
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

2.HashMap和HashTable的区别?

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,

HashMap的特点是,效率高,允许空值,线程不同步
HashTable的特点是,效率低,不允许空值,线程同步
TreeMap的特点是,所有元素保持一个固定的顺序,可用于Map集合中元素排序,不允许键对象是null

3 collection与collections有什么区别

Collection是集合类的上级接口,继承于他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
List, Set, Map是否继承自Collection接口? List,Set是 Map不是

4.ArrayList和Vector的区别。

一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一倍,而ArrayList却是原来的一半

5.final、finally、finalize的区别与用法

final用于声明属性,方法和类,分别表示属性不可便,方法不可覆盖,类不可被继承
finally是异常处理语句结构的一部分。表示总是执行
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法,提供垃圾回收集时的其他资源回收,例如过比文件

0 0
原创粉丝点击