首页 > 代码库 > 【Java基础】Java面试题目整理与讲解(二)

【Java基础】Java面试题目整理与讲解(二)

1.CollectionCollections的区别。

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

2.HashMapHashtable的区别。 

HashMap Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,HashMap是非线程安全,效率上可能高于Hashtable在多个线程访问 Hashtable 时,不需要自己为它的方法实现同步,而 HashMap 就必须为之提供外同步。

HashMap 允许将null 作为一个entry key 或者value,而Hashtable 不允许。

HashMap Hashtable contains 方法去掉了,改成containsvalue containsKey。因为contains 方法容易让人引起误解。Hashtable继承自 Dictionary类,而 HashMapJava1.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.