面试经验
做为一个刚工作不到两年的开发人员,尤其非本专业的从业人员来说,面试很难,我一般开发都是先百度,有解决方案一个个试,很多概念性的东西都不知道,也不知道其原理,导致每次离职面试都很难,因为对于我来说很多东西都不知道是什么,只知道脑子里有这个东西,会用,仅此而已,所以把这段时间面试碰到的问题记录一下
因为我工作中用的框架是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
十四、数据库的事务概念
数据库事务具有四个特征,原子性,一致性,隔离性和持久性,简单来说就是要么都成功,要么都失败,比如说插入多条数据,其中有一条是不能插入的,那该进行的插入操作的所有数据都不能成功插入数据库
浙公网安备 33010602011771号