首页 > 代码库 > 【Java基础】Java面试题目整理与讲解(二)
【Java基础】Java面试题目整理与讲解(二)
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.