我的求职面试题日记
去粗取精,去伪存真,面试题精选如下所示:
1、列出一些你常见的运行时异常?
(1)、 ArithmeticException(算术异常)
(2)、 ClassCastException (类转换异常)
(3)、 IllegalArgumentException (非法参数异常)
(4)、 IndexOutOfBoundsException (下标越界异常)
(5)、 NullPointerException (空指针异常)
(6)、 SecurityException (安全异常)
2、Servlet生命周期内调用的方法过程?
(1)、 Init()
(2)、 Service()
(3)、 doGet或者doPost
(4)、 destroy
3、阐述静态变量和实例变量的区别。
静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。
补充:在Java开发中,上下文类和工具类中通常会有大量的静态成员。、
4、类加载器双亲委派模型机制?
基本定义:
双亲委派模型的工作流程是:如果一个类加载器收到了类加载的请求,它首先不会自己去加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只有当父加载器没有找到所需的类时,子加载器才会尝试去加载该类。
双亲委派机制:
(1) 当 AppClassLoader 加载一个 class 时,它首先不会自己去尝试加载这个类,而是把类加载请求委派给父类加载器 ExtClassLoader 去完成。
(2) 当 ExtClassLoader 加载一个 class 时,它首先也不会自己去尝试加载这个类,而是把类加载请求委派给 BootStrapClassLoader 去完成。
(3) 如果 BootStrapClassLoader 加载失败,会使用 ExtClassLoader 来尝试加载;
(4) 若 ExtClassLoader 也加载失败,则会使用 AppClassLoader 来加载,如果 AppClassLoader 也加载失败,则会报出异常 ClassNotFoundException。
双亲委派作用:
1、 通过带有优先级的层级关可以避免类的重复加载;
2、 保证 Java 程序安全稳定运行,Java 核心 API 定义类型不会被随意替换。
5、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰?
都不能。抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛盾的。本地方法是由本地代码(如C代码)实现的方法,而抽象方法是没有实现的,也是矛盾的。synchronized和方法的实现细节有关,抽象方法不涉及实现细节,因此也是相互矛盾的。
#牛客创作赏金赛#