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 方法容易让人引起误解。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面试题目整理与讲解(二)