1.Collection
和 Collections
的差别。
Collection
是集合类的上级接口,继承于他的接口主要有
Set 和
List.
Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
2.HashMap
和 Hashtable
的差别。
HashMap 是
Hashtable 的轻量级实现(非线程安全的实现),他们都完毕了
Map 接口,HashMap是非线程安全,效率上可能高于
Hashtable。在多个线程訪问 Hashtable 时,不须要自己为它的方法实现同步,而 HashMap 就必须为之提供外同步。
HashMap 同意将
null 作为一个
entry 的
key 或者
value,而
Hashtable 不同意。
HashMap 把
Hashtable 的
contains 方法去掉了,改成
containsvalue
和 containsKey。由于
contains 方法easy让人引起误解。Hashtable
继承自 Dictionary
类,而 HashMap
是 Java1.2
引进的 Map interface
的一个实现。
Hashtable 和
HashMap 採用的
hash/rehash 算法都大概一样,所以性能不会有非常大的差异。
3.sleep()
和 wait()
有什么差别?
sleep 是线程类(Thread)的方法,导致此线程暂停运行指定时间,给运行机会给其它线程,可是监控状态依旧保持,到时后会自己主动恢复。调用
sleep 不会释放对象锁。
wait 是
Object 类的方法,对此对象调用
wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,仅仅有针对此对象发出
notify 方法(或
notifyAll)后本线程才进入对象锁定池准备获得对象锁进入执行状态。
4.short s1 = 1; s1 = s1 + 1;有什么错?
short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;
(s1+1
运算结果是 int
型,须要强制转换类型)short s1 = 1; s1 += 1;(能够正确编译)
5.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round 方法返回与參数最接近的长整数,參数加
1/2 后求其
floor.
【Java基础】Java面试题目整理与解说(二)