java面试基础总结

时间:2021-09-04 12:12:31
问题?java面试基础总结,java工程师面试基础总结

1. try[]catch[]finally{} 中, 如果try或catch语句中有return,会先将return表达式的结果保存起来然后看有没有finally语句,如果有finally且finally语句块中没有return语句,则先执行finally语句,然后再返回return表达式的结果,注意此时finally语句块的内容对返回结果没影响如果有finally语句块,且其中有return语句,则会直接返回该语句块的内容。

2. 异常的体系结构: 基类为Throwable,子类有Exception(可恢复异常)和error,error类体系描述了java运行系统中的内部错误以及资源耗尽的情形,不需要捕捉exception分为运行时异常(RuntimeException)和非运行时异常(受检测异常)运行时异常包括常见的类型转换异常,数组越界异常等,不需要被捕获,一般是自动将异常向上抛出,直到遇到处理代码的位置,若没有处理块就会抛出到最上层,多线程用thread.run()抛出,单线程用main()抛出受检测异常必须被throws语句声明或被try捕捉。


3、 java虚拟机规范:所有的对象实例和数组都是要在堆上分配的。 对象所占的堆内存是由自动内存管理系统回收堆内存由存活和死亡的对象还有空闲碎片区组成。
       
4. java语言中的方法是属于类中对象的成员,静态方法是属于类的成员
    
5. java中的true,false,null,friendly,sizeof等不是关键字,也不是保留字,只是显示常量值,但是不能在程序中用作标识符 const和goto和synchronized是java中的保留字,是关键字 java中的所有关键字都是小写的
    
6. 集合体系框架图   待插入
    
7. servlet的生命周期: 加载--->实例化--->销毁
    初始化阶段:
    init()方法;仅执行一次,负责在装载servlet时初始化servlet对象servlet启动,会读取配置文件中的信息,加载    servlet类和.class对应的数据创建servletConfig对象和servt对象,将servletConfig作为参数来调用init    方法
   
    运行阶段:
    service()方法: 核心方法,负责响应客户的请求。一般HttpServlet中会有get,post俩种处理方式。每当一个客户请         求一个HttpServlet对象,该对象的service()方法就会调用,而且 传递给这个方法一个请求对象              (servletRequest)和一个响应对象(servletResponse)作为参数,并创建servletRequest和  servletResponse对象。 在HttpServlet中已经存在service()方法。默认的服务功能是调用与HTTP请  求 的方法相应的do功能。
       
    销毁阶段:
    destroy()方法: 仅执行一次,在服务端停止并且卸载servlet时执行,负责释放资源 一个servlet在运行service()方    法时可能会产生其他线程,因此需要确认在调用destroy() 方法时,这些线程已经终止或完成。
   
    
    
8. 执行顺序:父类的静态代码块-->子类的静态代码块-->父类的非静态代码块-->父类的构造函数-->子类的非静态代码块-->子类的构造函数
   
    
9. acstract修饰符用来修饰类和成员方法。不能修饰字段
    抽象类中可以没有抽象方法,且抽象类不能被实例化。
    抽象方法没有方法体
        抽象类和接口的区别