1、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
override(重写,覆盖)1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载,过载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。
重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。
如果几个Overloaded的方法的参数列表不一样,它们的返回值类型可以不一样。如果两个方法的参数列表完全一样,不能让它们的返回值类型不同来实现重载Overload。
2、以下线程安全的有哪些?
Vector Hashtable ArrayList HashMap CopyOnWriteArrayList
答:Vector、Hashtable和CopyOnWriteArrayList是线程安全的,ArrayList和HashMap不是线程安全的而且必须要通过Collections.SynchronizedList或者Collections.synchronizedMap来包装一下才能实现同步。
3、哪些情况下使用抽象类?哪些情况下使用接口?
4、String和StringBuffer的区别?为什么?
5、以下代码是否运行正常?正常的话,输出什么?
public class HelloWorld {
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
Class cls = hello.getClass();
// returns the ClassLoader object associated with this Class
ClassLoader cLoad = cls.getClassLoader();
System.out.println(cLoad);
// returns the parent ClassLoader
System.out.println(cLoad.getParent());
System.out.println(cLoad.getParent().getParent());
}
}
6、ThreadLocal是什么?在实际场景中是为了解决什么?简单写下ThreadLocal的使用。
7、ServletConfig与ServletContext的区别?
ServletContext对象:servlet容器在启动时会加载web应用,并为每个web应用创建唯一的servlet context对象,可以把ServletContext看成是一个Web应用的服务器端组件的共享内存,在ServletContext中可以存放共享数据。ServletContext对象是真正的一个全局对象,凡是web容器中的Servlet都可以访问。
servletConfig对象:用于封装servlet的配置信息。从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对servlet自身有效,一个servlet的ServletConfig对象不能被另一个servlet访问。
8、什么方法实现跨域servlet调用servelt?
通过HttpClinet模拟发起请求,可以实现跨域Servlet调用Servlet。
9、Web缓存方案,在开源项目中有哪些?具体比较下
10、什么是PaaS?特点是什么?...