java程序员最新面试题ssm面向对象Word下载.docx

上传人:b****5 文档编号:17294759 上传时间:2022-12-01 格式:DOCX 页数:30 大小:37.41KB
下载 相关 举报
java程序员最新面试题ssm面向对象Word下载.docx_第1页
第1页 / 共30页
java程序员最新面试题ssm面向对象Word下载.docx_第2页
第2页 / 共30页
java程序员最新面试题ssm面向对象Word下载.docx_第3页
第3页 / 共30页
java程序员最新面试题ssm面向对象Word下载.docx_第4页
第4页 / 共30页
java程序员最新面试题ssm面向对象Word下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

java程序员最新面试题ssm面向对象Word下载.docx

《java程序员最新面试题ssm面向对象Word下载.docx》由会员分享,可在线阅读,更多相关《java程序员最新面试题ssm面向对象Word下载.docx(30页珍藏版)》请在冰豆网上搜索。

java程序员最新面试题ssm面向对象Word下载.docx

1.模型驱动:

在实现类中实现ModelDriven<

T>

接口使用泛型把属性类封装起来,重写getModel()方法,然后在实现类里创建一个属性类的实例,

2.属性驱动:

在实现类里定义属性,生成get与set方法,通过属性来拿值。

###5.Struts2是怎样进行值封装的?

struts2的值封装实际上是采用了ognl表达式.

###6.Struts2如何进行校验

1.每个Action类有一个校验文件,命名Action类名-validation.xml,且与Action类同目录,这是对action里面所有的方法进行校验。

2.对Action里面的指定方法做校验使用Action的类名-访问路径_方法名-validation.xml。

在效验文件里又分为两种:

字段校验:

字段用什么校验器来校验。

非字段校验:

是用校验器校验什么字段。

###7.谈谈Struts2的国际化

在struts2中是使用了拦截器来实现国际化。

具体是先配置属性文件,格式是文件名_语言_国家名.properties,然后放的位置有Action同包位置,

package位置,全局位置(要在常量里面配置),然后页面通过s:

text或者key属性去访问

###8.OGNL是什么你在项目中如何使用它

OGNL是:

对象图形导航语言。

在struts2中的作用:

ognl的实现关系:

ActionConetxt。

ognl3个常用的符号#$%

#

1构造map,list集合。

2取ognl上下文的值。

3用来过滤集合。

$

1在校验框架中取资源文件中的值。

2可以在配置文件中传递参数。

%

使用百分号可以进行转义。

###9.Strust2如何访问ServletAPI

1:

通过ActionContext可以获得request,application,session三个作用域(struts2实际上是通过适配器

来把servlet的api转换为一个map,并把这些map放在ActionContext里面)。

2:

通过ActionContext的子类ServletActionContext去获取原滋原味的API。

3:

可以通过实现ServletRequestAware接口,重写里面的setServletRequest方法可以获得request,实际上是通过set的依赖注入。

###10.什么是拦截器说说Struts2用拦截器来干什么说出6个拦截器来

解释:

在访问类的某个方法或者属性之前执行,拦截的是Action的请求,进行拦截然后在方法的执行前或者之后加入某些操作。

作用:

国际化,权限,效验等与源代码无关的操作。

拦截器:

国际化,表单重复提交,类型转换,自动装配,数据封装,异常处理,模型驱动,请求参数,处理类型转换错误,日志拦截器。

###11.如何实现自定义拦截器?

需要注意什么?

实现:

1.可以实现Interceptor接口,重写doIntercept方法指定某个方法进行拦截,或者继承AbstractInterceptor类,重写intercept方法。

2.在xml配置文件中定义自定义拦截器,然后注入到拦截器栈中,再把拦截器引用到action中。

3.可以配置到某个action单独使用,也可以配置到包下面的所有action使用。

注意:

要把默认的拦截器栈重新引用,否则会被覆盖。

###12.ActionContext是用来干什么的

ActionContext是Action的上下文。

###13.为什么要继承默认的包?

因为在Strtus2里面默认有很多的常量,拦截器,还有一些bean,如果继承默认的包,这些默认值和常量就会继承过来,

###14.常见的有哪几种结果集类型?

dispatcher:

指得是转发,默认的结果集类型

redirect:

重定向,

redirectAction:

重定向到一个Action

stream:

是返回一个流,一般用在文件下载上面

###15.开发项目时struts2在页面怎样拿值?

从值栈中或者是ognl的上下文

###16.怎么样用Struts2进行文件的上传或者下载

上传:

1.在jsp用了s:

file标签,把s:

from的enctype属性设置为multipart/form-data

2.在action里面定义三个字段Filefile,String[file]ContentType,String[file]FileName

3.用输出流转化成硬盘上面的文件

下载:

1.在struts.xml中配置result为stream的类型

2.在action定义四个属性,默认的有个是InputStream的类型叫inputStream的,从硬盘上面读取文件到这个流赋值即可.

contentType;

contentLength;

contentDisposition;

inputStream;

###17.简单讲下struts里面的标签,说不少于5个

s:

if

form

url

property

iterater

###18.默认struts2里面的标签取值都是从那里取值的

默认都是从OGNL值栈里面取值的

###19.ValueStack分为那两部分,组成部分是什么,分别怎么访问

分为:

对象栈和ContextMap

访问:

1.对象栈前台可以直接访问

2.ContextMap访问的时候前面加#

###20.标签<

s:

property>

和el表达式有什么区别,

相同:

都可以从值栈里面取值

el表达式只能取属性有getset方法的简单数据类型

s:

property标签:

取得数组的一些方法等复杂数据对象类型

###21.说下重复提交的解决思路,Struts2是怎么样解决重复提交的

1.在页面表单域加入一个隐藏的s:

token字段,然后在session里面也加入同样的值

2.当用户第一次请求的时候,把request的值和session对比,相同就通过请求,执行下面拦截器,并且移除Session里面的值

3.如果第二次请求时候,Session已经没有这个值,那么就阻断当前请求,定位重复提交

Struts2是通过s:

token标签来完成重复提交思路的

spring的面试题部分

###1.Spring的aop你怎样实现?

用动态代理和cglib实现,有接口的用动态代理,无接口的用cglib

###2.Spring在SSH起什么作用

为大部分框架提供模版,常见的核心类提供初始化,并且整合三层框架

###3.Spring容器内部怎么实现的

内部用Map实现,或者说HashMap

###4.怎么样理解IOC与AOP

IOC是一种控制反转的思想,降低了对象的耦合度,AOP是面向切面编程,非侵入式编程,实现了非业务性编程(公共功能),譬如日志,权限,事务等等

###5.Spring的事务,事务的作用。

Spring里面的事务分为编程式事务和声明式事务,一般用声明式事务,用来控制数据操作的完整性,一致性

###6.Spring的IOC和AOP你在项目中是怎么使用的?

IOC主要来解决对象之间的依赖问题,把所有的bean的依赖关系通过配置文件或者注解关联起来,降低了耦合度,AOP一般用来整合框架时候都可以用得到,

事务用的最多,还有个别日志,权限功能也可以用到

###7Spring主要使用了什么模式?

工厂模式-->

每个Bean的创建通过方法

单例模式-->

默认的每个Bean的作用域都是单例

代理模式-->

关于AOP的实现是通过代理,体现代理模式

###8.Springbean的作用域.

Scope作用域有4种,常见的有单例或者多例,默认是单例

###9.Spring的事务是如何配置的?

1.先配置事务管理器TransactionManager,不同的框架有不同属性

2.再配置事务通知和属性,通过tx:

advice

3.配置<

aop:

config>

设置那些方法或者类需要加入事务

###10.Spring的配置文件最好使用什么文件?

xml,因为它是最简单,最流行的数据格式

###11.你使用过Spring中的哪些技术?

bean的管理,AOP技术,IOC技术,事务等

###12.为什么要用Spring

降低对象耦合度,让代码更加清晰,提供一些常见的模版

###13.说下Spring的注解

1.bean的标记注解

@Component通用注解@Repository持久层注解@Service业务层注解@Controller:

表现层注解

2.bean的自动装配注解

@AutoWired默认是按照类型装配,如果有多个类型实现可以用Qualifier来指定名称

@Resource默认是按照名称来装配,是JDK里面自带的注解,默认情况下用@AutoWired注解

###15.写过类似SpringAOP的操作吗?

简单的写过,譬如前置通知,后置通知的方法,环绕通知,事务就是典型的AOP的实现

###16.Spring中的AOP在你项目中是怎么使用的,用在哪里?

Struts2和Hibernate整合时候都可以用得到,事务用的最多,还有个别日志,权限功能也可以用到

###17.Spring的事务(传播属性,隔离级别)。

七大传播属性,四大隔离级别

###19.SpringDI的几种方式

setter注入和构造器注入,一般用setter注入

###20.依赖注入的原理

就是通过反射机制生成想要的对象注入

###21.说一下整合Spring的核心监听器。

这个是在SSH整合的时候使用,是整个WEB项目启动的时候初始化Spring的容器.具体是在web.xml里面配置的ContextLoaderListener

Spring配置文件中的核心是个监听器,是用来初始化Spring的容器

###22.Spring你们为什么用配置文件而不使用注解?

配置文件耦合度低,容易维护,尤其是在切面或者事务的时候,只配置一次就可以让很多代码拥有事务,

###23.Spring和Hibernate的事务有什么区别?

Spring的事务提供了统一的事务处理机制,包含了JDBC,Hibernate,IBatis等事务实现,而Hibernate只处理自己事务

###24.Struts2与Spring整合先启动那个容器。

先启动监听器,因为先要初始化容器,初始化容器了以后Action才能从容器里面获得

###26.让你写Spring的容器,你是怎样实现的?

我们可以写一个HashMap,如果并发考虑的话要写并发的Map,把bean的名字放在map的key,bean的实现map的value

###27.谈谈Spring的IOC和AOP,如果不用Spring,怎么去实现这两个技术。

ioc用反射实现,AOP用动态代理实现

###28.Spring事务和Hibernate事务的操作上面的区别?

hibernate的事务只能手动显示代码的方式控制创建事务与提交事务以及回滚。

Spring可以通过配置文件设定一类class事务的创建与提交以及回滚,也可以显示代码方式控制。

###29.讲下Spring的七大事务传播

有七个,常用有两个REQUIERD,REQUIRED_NEW,REQUIERD表示两个事务的方法调用的时候,前面的时候和后面的合并成一个事务,REQUIRED_NEW是重启一个事务,各干各的

###30.在同一进程里,有A,B两个方法都对不同的表进行更新数据,假如A方法出异常了,若要B方法执行,怎样配置事务级别,若不要B方法执行,又该怎样配置?

前者用REQUIRED_NEW,后者用REQUIRED

###31.事务并发会引起什么问题,怎么解决

事务并发会引起脏读,幻读,不可重复读等问题,设定事务的隔离级别就可以解决

###32.事务的隔离级别

Spring定义有四种,但是常见的是READ_COMMIT,Oralce有两种实现,MYSql有四种

###33.Spring的IOC容器与工厂类有什么区别?

IOC(InversionofControl)对Bean的控制能力更强,能控制对象自动注入,还可以控制生命周期,而工厂类只是简单的创建一个对象,没有什么控制能力

###34.事务的安全问题:

锁机制的实现原理及在项目中的使用

锁有悲观锁和乐观锁,悲观锁一般假设每个人都会修改数据,默认情况下把数据都锁住,影响性能,但安全性高.

乐观锁是假设每个人都只读下数据,不会修改数据,性能比较高,但是安全性较低,一般通过增加类似于版本控制里面版本号来解决问题

###35.讲下BeanFactory和ApplicationContext的区别

BeanFactory是Spring容器顶级核心接口,比较早,但功能比较少,getBean就是BeanFactory定义的,

ApplicationContext是Spring里面的另外一个容器顶级接口,它继承于BeanFactory,但是提供的功能譬如校验,国际化,监听,

对Bean的管理功能比较多,一般使用ApplicationContext

springMVC模式的面试题部分

###f-sm-1.讲下SpringMvc和Struts1,Struts2的比较的优势

性能上Struts1>

SpringMvc>

Struts2开发速度上SpringMvc和Struts2差不多,比Struts1要高

###f-sm-2.讲下SpringMvc的核心入口类是什么,Struts1,Struts2的分别是什么

SpringMvc的是DispatchServlet,Struts1的是ActionServlet,Struts2的是StrutsPrepareAndExecuteFilter

###f-sm-3.SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决

是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段

###f-sm-4.SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代

一般用@Controller注解,表示是表现层,不能用用别的注解代替.

###f-sm-5.@RequestMapping注解用在类上面有什么作用

用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

###f-sm-6.怎么样把某个请求映射到特定的方法上面

直接在方法上面加上注解@RequestMapping,并且在这个注解里面写上要拦截的路径

###f-sm-7.如果在拦截请求中,我想拦截get方式提交的方法,怎么配置

可以在@RequestMapping注解里面加上method=RequestMethod.GET

###f-sm-8.如果在拦截请求中,我想拦截提交参数中包含"

type=test"

字符串,怎么配置

可以在@RequestMapping注解里面加上params="

###f-sm-9.我想在拦截的方法里面得到从前台传入的参数,怎么得到

直接在形参里面声明这个参数就可以,但必须名字和传过来的参数一样

###f-sm-10.如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象

直接在方法中声明这个对象,SpringMvc就自动会把属性赋值到这个对象里面

###f-sm-11.怎么样在方法里面得到Request,或者Session

直接在方法的形参中声明request,SpringMvc就自动把request对象传入

###f-sm-12.SpringMvc中函数的返回值是什么.

返回值可以有很多类型,有String,ModelAndView,List,Set等,一般用String比较好,如果是AJAX请求,返回的可以是一个集合

###f-sm-13.SpringMvc怎么处理返回值的

SpringMvc根据配置文件中InternalResourceViewResolver(内部资源视图解析器)的前缀和后缀,用前缀+返回值+后缀组成完整的返回值

###f-sm-14.SpringMVC怎么样设定重定向和转发的

在返回值前面加"

forward:

"

就可以让结果转发,譬如"

user.do?

name=method4"

redirect:

就可以让返回值重定向,譬如"

###f-sm-15.SpringMvc用什么对象从后台向前台传递数据的

通过ModelMap对象,可以在这个对象里面用addAttribute()方法,把对象加到里面,前台就可以通过el表达式拿到

###f-sm-16.SpringMvc中有个类把视图和数据都合并的一起的,叫什么

ModelAndView

###f-sm-17.怎么样把数据放入Session里面

可以声明一个request,或者session先拿到session,然后就可以放入数据,或者可以在类上面加上@SessionAttributes注解,

里面包含的字符串就是要放入session里面的key

###f-sm-18.SpringMvc怎么和AJAX相互调用的

通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象具体步骤如下:

1.加入Jackson.jar

2.在配置文件中配置json的映射

3.在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解

###f-sm-19.当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理

要加上@ResponseBody注解

###f-sm-20.SpringMvc里面拦截器是怎么写的

有两种写法,一种是实现接口,另外一种是继承适配器类,然后在SpringMvc的配置文件中配置拦截器即可:

<

!

--配置SpringMvc的拦截器-->

mvc:

interceptors>

--配置一个拦截器的Bean就可以了默认是对所有请求都拦截-->

<

beanid="

myInterceptor"

class="

com.et.action.MyHandlerInterceptor"

>

<

/bean>

--只针对部分请求拦截-->

interceptor>

mappingpath="

/modelMap.do"

/>

beanclass="

com.et.action.MyHandlerInterceptorAdapter"

/mvc:

###f-sm-21.讲下SpringMvc的执行流程

系统启动的时候根据配置文件创建spring的容器,首先是发送http请求到核心控制器DispatcherServlet,spring容器通过映射器去寻找业务控制器,

使用适配器找到相应的业务类,在进业务类时进行数据封装,在封装前可能会涉及到类型转换,执行完业务类后使用ModelAndView进行视图转发,

数据放在model中,用map传递数据进行页面显示。

MyBatis的面试题部分

###1.讲下MyBatis和Hibernate的区别?

MyBatis是JDBC的轻量级封装,把Sql和java代码独立出来,性能相对比较高,写SQL语句相对于比较灵活,并且容易调试,一般用在大型项目中.

Hibernate是JDBC的重量级封装,开发速度比较快,但是性能比较低,调试不方便,一般适合对进度要求的比较高的中小型项目

###2.什么是MyBatis的接口绑定,有什么好处

接口映射就是在IBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定,我们直接调用接口方法就可以,

这样比起原来了SqlSession提供的方法我们可以有更加灵活的选择和设置.

###3.接口绑定有几种实现方式,分别是怎么实现的?

接口绑定有两种实现方式,一种是通过注解绑定,就是在接口的方法上面加上@Select

@Update等注解里

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1