1.HashMap和Hashtable的区别?
答:1.HashMap是线程不安全的;Hashtable是线程安全的。
2.HashMap允许键值为null;Hashtable不允许。
2.final, finally, finalize的区别?
答:1.final用于修饰类、变量以及方法,表明类不能继承,变量不能修改,方法不能覆盖。
2.finally与try{}catch(){}一起使用,表示最终执行;
3.finalize是Object类的一个方法,该对象被垃圾回收时会调用此方法。
3.sleep() 和 wait() 有什么区别?
答:1.sleep是线程类的方法,sleep会让线程暂停执行指定时间,给其他线程执行机会,但是监控状态依然保持,到时自动恢复,调用sleep方法不会释放对象锁。
2.wait是Object类的方法,调用对象的wait方法会导致本线程放弃对象锁,进入此对象的锁池等待锁,至到调用对象的notify方法(或notifyAll),本线程才会去获取对象锁。
4.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
答:1.Overload:重载,是一个类中多态的表现。
2.Override:重写,是父类与子类之间多态的一种表现。
3.Overloaded可以改变方法的返回值。
5.error和exception有什么区别?
答:1.error:是程序出现的严重错误,不能指望程序能处理这样的情况。
2.exception:是一种设计与实现问题,如果程序正常运行,从不会发生这样的情况。
6.同步和异步有何异同,在什么情况下分别使用他们?举例说明。
答:1.当数据需要共享时,必须进行同步存取。例如:正在写的数据可能被其他线程获取,获取被另外一个线程修改过,这个时候需要进行同步存取。
2.当程序在对象上调用一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,应该使用异步编程,这样大大提高了效率。
7.abstract class和interface有什么区别?
答:1.抽象类可以有构造方法,接口没有。
2.一个类可以实现多个接口,但只能继承一个抽象类。
3.抽象类可以包含非抽象的普通方法,接口的方法全部都是抽象的。
4.抽象类可以有普通成员变量,接口没有。
5.抽象类可以有静态方法,接口没有。
8.heap和stack有什么区别?
答:1.堆是栈的组成元素。
2.栈是一种线性集合,按照后进先出的方式进行处理。
9.forward 和redirect的区别?
答:1.forward:请求转发,A(浏览器)<->B(服务器)<->C(内容提供者)
2.redirect:重定向,A(浏览器)<->B(服务器) A(浏览器)<->C(内容提供者)
10.EJB与JAVA BEAN的区别?
答:1.JavaBean就是平时我们的实体类,类似于COM,不支持分布式访问,不需要容器支持。
2.EJB类似于DCOM,支持分布式访问,需要部署在Webspere、WebLogic容器中。