1.什么是反射
就是可以在程序运行的时候动态装载类,查看类的信息,生成对象,或者操作生成对象。还可以得到类的信息并且操作修改这些信息。
2.反射机制的作用
在运行代码时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法。
3.什么是 java 序列化?什么情况下需要序列化?
序列化:将java对象转换成字节流的过程
反序列化:讲字节流转换成java对象的过程
当java对象需要在网络上传输或者持久化存储到文件中时,就需要对java对象进行序列化处理
4.动态代理是什么?有哪些应用?
当我们需要给某个类或者接口中的方法添加一些额外的功能时,可以通过创建一个代理类来实现这些功能;该代理类既包含了原有的类的完整的功能,同事在这些功能的基础上添加了其他的逻辑。这个代理不会事先定义好的,而是动态生成的,比较灵活。
AOP
在我们用到spring框架的时候碰到的aop前置后置通知都是基于动态代理来实现的。
5.怎么实现动态代理?
第一种InvocationHandler接口,另一种是proxy类。
接口是给动态代理类实现的,负责处理被代理对象的操作的,而proxy是用来创建动态代理实例对象的,因为只有得到了这个对象我们才能调用哪些需要代理的方法。
6.Error与Exception的区别
Error表示系统级的错误和程序不必处理的异常
Exception表示需要捕捉或者需要程序进行处理的异常
7.jsp 和 servlet 有什么区别?
Servlet
一种是服务器端的java应用程序
由Web容器加载和管理
用于生成动态Web内容
负责处理客户端的请求
Jsp
是Servlet的扩展,本质上还是Servlet
每个Jsp页面就是一个Servlet实例
Jsp页面会被Web容器编译成Servlet,Servlet再负责响应用户请求
区别
Servlet适合动态输出Web数据和业务逻辑处理,对于html页面内容的修改非常不方便;Jsp是在Html代码中嵌入Java代码,适合页面的显示
内置想不通,获取内置对象的方式不同
8.jsp有哪些内置对象?作用分别是什么?
Request:代表请求对象,主要用于接受客户端通过HTTP协议连接传输服务器端的数据。
Response:代表响应对象,主要用于向客户端发送数据。
out:主要用于向客户端输出数据,out的基类是jspWriter
session:主要用来分别保存每个月的信息与请求关联的会话;会话状态的维持是web应用开发者必须面对的问题
application:主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一个application,故其保存的信息被所有用户所共享。
PageContext:管理页面属性,为jsp页面包装页面的上下文,管理对属于jsp的特色课件部分中的已经命名对象的访问,它的创建和初始化都是由容器来完成的。
Config:代码片段配置对象,标识Servlet的配置
page:处理jsp页面
Exception:处理jsp文件执行是发生的错误和异常