笔试
50道题左右,4页A4纸,考察的都是JAVA基础知识,框架的知识点倒不多,基本上是JAVA基础、网络、线程、IO、Linux基础操作、数据库基础操作。
面试
1、Hashtable 和 HashMap的区别?
(1)主要区别在于HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。由于非线程安全,多线程情况下,效率上可能高于Hashtable。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以单线程性能不会有很大的差异。
(2)Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步(Collections.synchronizedMap)。
(3)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
2、servlet的线程安全问题?
答:如果代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。那么我们都知道servlet是多线程的,同时一个servlet实现类只会有一个实例对象,也就是它是Singleton的,所以多个线程是可能会访问同一个servlet实例对象的。同一个实例对象被多个线程访问,如果没有做同步处理,那么servlet就是非线程安全的,如果做了同步处理,就是线程安全。所以,servlet是否线程安全是由它的实现来决定的,如果它内部的属性或方***被多个线程改变,它就是线程不安全的,反之,就是线程安全的。
全部评论
(1) 回帖