java面试复习总结.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

个人简历可能会被问到的问题:

一、框架

lx Tapestry

1)Tapestry是一个前端MVC+模板技术的框架,实现视图逻辑和业务逻辑的分离

2)Tapestey使用组件技术替代标签库,组件由一系列页面组成,抛了JSP

3)Tapestry组件容易被自定义开发,代码复用性高

4)Tapestry框架的加载是通过Filter(过滤器)来完成的

5)Tapestry国内使用的比较少,开发文档较少,组件逻辑+ognl表达式的使用较复杂

2^ Struts

1)基于MVC架构,框架结构清晰。

2)类级别的拦截器。

3)Struts2中的许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。拦截器是可配置与重用的

4)可以兼容多种表现层技术.如:JSP、FreeMarker> Velocity等

5)使用OGNL: OGNL可以快捷的访问值栈中的数据、调用值栈中对彖的方法

6)组件+标签库+ognl表达式

7)缺点:配置文件满天飞,繁琐,值栈取值等性能较差,适用于追求稳定的系统应用

3、SpringMVC

1)与Spring实现无缝整合集成

2)支持Restful风格

3)spring mvc把所有的请求都提交给DispatcherServlet前置控制器

4)springMVC拦截器是属于HandlerMapping方法级别的

4、Spring

1)降低了组件之间的耦合性,实现了软件各层之间的解耦

2)可以使用容易提供的众多服务,如事务管理,消息服务等

3)容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能

4)Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部

5)spring对于主流的应用框架提供了集成支持,如hibernate, JPA, Struts等

Spring两大核心技术思想:

AOP:而向切而,就是典型的代理模式的体现。而向切而编程提供声明式事务管理实现AOP的技术,主要分为两大类:一是釆用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。

(生成代理类遇到接口的使用jdk动态代理,遇到类的使用cglib生成代理推荐前者后者final

方法无法切入)

IOC:依赖注入,控制反转,就是典型的工厂模式,通过sessionfactory去注入实例将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来牛成类的实例对象以及管理对象。在spring容器启动的时候,spring 会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean 分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean 了。

5^ Habenate

1)封装了jdbc,简化了很多重复性代码

2)简化了DAO层编码工作,使开发更对象化了

3)移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了Habernate的缓存机制:

一级缓存:session级的缓存也叫事务级的缓存,只缓存实体,生命周期和session -致。不能对其进行管理。不用显示的调用。

二级缓存:sessionFactory缓存,也叫进程级的缓存,使用第3方插件实现的,也只缓存实体,生命周期和sessionFactory 一致,可以进行管理。

6^ Mybatis

1)MyBatis是最简单的持久化框架,小巧并且简单易学。

2)提供XML标签,支持编写动态SQL语句。

SQL语句的编写工作量较大

SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

Mybatis 优势

MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

MyBatis容易掌握,而Hibernate门槛较高。

Hibernate 优势

Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。

Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。

Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需耍写不同SQL。Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

拦截器的作用?拦截器与过滤器的区别?

1)拦截器是对调用的Action起作用,它提供了一种机制可以使开发者可以定义在一个action 执行的前后执行的代码,只在Action前后执行。同时可以减轻代码冗余,提高重用率。

2)过滤器是拦截用户请求的,范围明显比拦截器大的多。

6、Activiti5

1)Activiti I作的核心:ProcessEngine 对象,Activity I作流引擎

2)

7、Redis

Redis是一个基于内存的高性能key-value数据库。Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写。

1)速度快,因为数据存在内存中,类似于HashMap, HashMap的优势就是查找和操作的吋间复杂度都是0(1)

2)支持丰富数据类型,支持string, list, set, sorted set, hash

3)支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

4)丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

RESTful

网络上的所有事物都被抽象为资源

相关文档
最新文档