面试经验

         做为一个刚工作不到两年的开发人员,尤其非本专业的从业人员来说,面试很难,我一般开发都是先百度,有解决方案一个个试,很多概念性的东西都不知道,也不知道其原理,导致每次离职面试都很难,因为对于我来说很多东西都不知道是什么,只知道脑子里有这个东西,会用,仅此而已,所以把这段时间面试碰到的问题记录一下

  因为我工作中用的框架是springmvc+mybatis+oracle 所以大部面试问题都是围绕在这一块

一、mybatis常用的的sql动态标签有哪些?

    if,else,(when,otherwise),set,where,foreach,include,trim等 用户和jstl的标签相似

二,mybatis怎么批处理

   通过实现mybatis自带的批处理类BatchExecutor

三、mybatis是怎么映射到相应的dao层

 Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,一般通过<mapper namespace="需要实现的DAO" >

四、springMVC原理

   

运行原理

1,客户端提交请求到DispatchServlet

2,DispatchServlet通过HandlerMapping(Spring方法)找到处理请求的cotroller

3.DispatchServlet将请求提交给cotroller

4.cotroller处理请求,然后把请求结果返回给ModelAndView

5.DispatchServlet通过viewResoler(视图解析器),找到ModelAndView指定的视图

6.视图把处理结果显示在客户端

五、ioc的概念

IoC(Inversion of Control,控制倒转)是Spring的核心,简单来说,就是把原本由你控制的对象,交由spring来控制,ioc是一种编程思想,有了IOC容器,把创建和查找依赖对象的控制权交由了容器,由容器进行注入到对象,这样的话方便程序测试,对象与对象之间也是松散耦合。

ioc的重点在系统运行中,动态的向某个对象提供需要的对象,这就需要通过DI(Dependency Injection,依赖注入)来实现的

六、springMVC常用注解有哪些

@Controller 定义了一个控制器类

@RequsetMapping处理请求地址映射的注解,用于类或方法上,用于类上的话,表示类中的所有响应请求的方法都是以该地址作为父路径

RequestMapping注解有六个属性,分成三类进行说明

1、 value, method;

value:     指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);

method:  指定请求的method类型, GET、POST、PUT、DELETE等;

2、consumes,produces

consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

3、params,headers

params: 指定request中必须包含某些参数值是,才让该方法处理。

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

@Resource和Autowired

都是注入做bean注入的时候使用,@Resource并不是spring的注解,需要引入包javax.annotation.Resource,但是spring支持该注解的注入

@requestParam用于在springMVC的后台取参数,类似于request.getParameter

@component

相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议

@Repository 用于DAO层注解,在daoImpl上注解

七、JDBC的执行步骤

加载驱动---连接URL---创建数据库连接---创建statement---执行sql语句---处理结果--关闭连接

八、数据排序

冒泡排序,快速排序,递归等,具体看推荐博客 http://www.cnblogs.com/0201zcr/p/4763806.html

九、类和抽象类的区别

类可以被实例化,抽象类不能为被实类化

十、如果你现在负责的系统有大量数据,导致程序运行慢,你会怎么优化数据库

十一、异步和同步的区别

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。  
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

十二、怎么处理事务的,及事务的概念

对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的操作..... 

 

十三、mybatis的运行原理

mybatis应用程序通过xml文件配置,创建sqlSessionFactory,sqlSessionFactory根据配置文件,配置文件来源于两个地方,一个是配置文件夹,一个是java代码的注解,获取sqlsession,sqlSession包含了执行sql所需要的所有方法,可以通过sqlSession直接运行映射的sql语句,完成对数据的增删改查和事务提交等,完成后关闭sqlsession

十四、数据库的事务概念

数据库事务具有四个特征,原子性,一致性,隔离性和持久性,简单来说就是要么都成功,要么都失败,比如说插入多条数据,其中有一条是不能插入的,那该进行的插入操作的所有数据都不能成功插入数据库

posted on 2017-09-11 17:29  wtu文  阅读(353)  评论(1)    收藏  举报