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捕捉。
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修饰符用来修饰类和成员方法。不能修饰字段
抽象类中可以没有抽象方法,且抽象类不能被实例化。
抽象方法没有方法体
抽象类和接口的区别