java面试总结1

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();
    }
}
}

posted @ 2020-04-24 17:41  下饭  阅读(135)  评论(0编辑  收藏  举报