Java常见笔试题

面向对象的特征

抽象:将一类的对象的共同特征总结出来并构造类的过程,包括数据抽象和行为抽象,抽象只关注对象有哪些属性和行为,并不关心细节;

继承:从已有类得到继承信息并构造新类的过程,继承让变化的软件系统有一定的延续性,提供信息的类称为超类或基类,得到继承信息的称为子类;

封装:将操作细节捆绑起来,对外只提供相应的接口,隐藏一切可以隐藏的细节;

多态:允许不同的子类型对同意消息做出不同的响应,又分为编译时多态和运行时多态,方法重载是编译时多态,方法重写为运行时多态,实现运行时多态只需要做的是方法重写和对象造型

String、StringBuffer和StringBuilder区别

String是只读的,StringBuffer和StringBuilder可以对内容进行修改,StringBuilder是线程安全的,效率比StringBuffer高

常用的设计模式

- 工厂模式:利用运行时多态工厂类可以根据条件生成不同的子类实例

- 代理模式:给一个对象提供一个代理对象,并由代理对象控制原对象的引用

Jsp的9个内置对象

request:封装客户端请求,包括GET或POST请求的参数;

response:封装对客户端的响应;

pageContext:封装其它内置对象的引用;

session:封装用户会话对象;

扫描二维码关注公众号,回复: 2190924 查看本文章

application:封装服务器运行环境的对象;

out:输出服务器响应的输出流对象;

config:web应用的配置对象;

page:页面本身;

exception:封装页面抛出异常的对象

interceptor和filter的区别

filter:依赖于servlet容器,在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次

interceptor:依赖于web框架,在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。同时一个拦截器实例在一个controller生命周期之内可以多次调用,但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理

调用顺序:filter调用顺序基于web.xml,interceptor基于MVC框架配置文件

Struts的原理和作用

原理过程:

- 客户端初始化指向servlet的请求

- 请求经过系列的过滤器

- 调用StrutsPrepareAndExecuteFilter,并决定是否需要调用Action

- 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy

- ActionProxy找到需要调用的Action类,创建一个ActionInvocation的实例

- 调用Action,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用

- Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果

作用:

- 获取表单内容

- 根据请求找到合适的控制器

- 调用业务业务接口

- 简单校验、国际化等其它工作

Spring的作用

- 非侵入式:支持基于POJO的编程模式,不强制性的要求实现Spring框架中的接口或继承Spring框架中的类

- Ioc容器:再也不用自己写工厂

- AOP:将所有的横切关注功能封装到切面(aspect)中,通过配置的方式将横切关注功能动态添加到目标代码上,进一步实现了业务逻辑和系统服务之间的分离

- MVC:SpringMVC是MVC的具体实现

SpringMVC原理

- 客户端请求提交到DispatcherServlet

- 由DispatcherServlet控制器查询HandlerMapping,找到并分发到指定的Controller中

- Controller调用业务逻辑处理后,返回ModelAndView

- DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图

- 视图负责将结果显示到客户端

猜你喜欢

转载自www.cnblogs.com/suheng/p/9320948.html