我的求职面试题日记

去粗取精,去伪存真,面试题精选如下所示:

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和方法的实现细节有关,抽象方法不涉及实现细节,因此也是相互矛盾的。

#牛客创作赏金赛#
全部评论

相关推荐

1 6 评论
分享
牛客网
牛客企业服务