1.8个基本数据类型的字节长度
byte int short long char float double boolean
1 2 4 8 2 4 8 1
2.java多线程为什么经常用接口而不是继承类?
java不支持多线程 ,一旦继承Thread类的话,不能继承其他类,扩展性不好
实现runnable接口是线程共享的,一个线程里面实现的变量,其他线程也可以见,容易实现同步。
3.servlet中,servlet的Filter和Interceptor的区别
servlet的Filter依赖于servlet的doFilter回调函数,Inteceptor依赖于java本身的反射机制;
Filter依赖于servlet容器,Inteceptor与servlet无关;
filter可以过滤所有请求,还可以保护页面、图片、文件等,而Inteceptor只能过滤请求,只对Action起作用,在Action开始以前开始,结束之后结束;
Inteceptor可以访问action上下文,值栈里的对象,而Filter不能,
Inteceptor可以被调用多次,过滤器只能在初始化时被调用。
4.请写出一个单例模式
饿汉模式
class Stdent{
private static final Student INSTANCE=new Student();//静态全局常量
private Student(){}//构造方法私有化,不允许外部创建对象
public static Student getInstance(){return INSTANCE;}
}
懒汉模式
class Student{
private static Student INSTANCE;
private Student(){}
public static Student getInstance(){
if(instance==null){
INSTANCE=new Student();
}
return INSTANCE;
}
}
5.java如何做到实现两个类以上的功能?
1.这两个类继承同一个接口(要求重写的方法方法名相同)
2.这两个类一个类继承另一个类,继承的传递
3.内部类,两个内部类各自继承
内部类实现:
class A {
public void run() {
System.out.println("A");
}
}
class B {
public void fun() {
System.out.println("B");
}
}
public class Test1{
public static void main(String[] args) throws Exception {
Test1 test1 = new Test1();
a a = test1.new a();
a.run();
b b = test1.new b();
b.fun();
}
class a extends A{
public void run() {
super.run();
}
}
class b extends B{
public void fun() {
super.fun();
}
}
}