2017面试遇到的面试题

来源:互联网 发布:数据库动态网页生成器 编辑:程序博客网 时间:2024/05/19 14:37

答案自行百度,本文只记录我不会的问题:

1.mybatis 一级缓存与二级缓存区别

答:一级缓存是sqlsession级别,每个不一样,保存sql语句 默认开启,二级缓存是mapper级别,多个sqlsession可共用一个mapper(二级缓存),保存查询结果 默认不开启  当sql语句查询时,先去一级缓存查是否有相同的sql语句查询过。

2.mybatis #{}与${}区别  

答:前者把传入值当成一个字符串就是在外面再加“”,后者是直接拼入sql语句,前者防止sql注入.

3.mysql查询原理

答:当mysql收到查询语句时,先调用mysql的api进入一级缓存查询是否有相同的语句已执行,如果没有,进行语句的解析,排列,验证,执行。并把结果放到二级缓存

4.hashmap的原理,list和likelist 的区别 肯定会问

5.线程创建的方法

6.notify与notifyAll()区别

答:故名思意 all就是唤醒所有的,但是前者不能指定唤醒哪一个,只唤醒当前线程,就是放到哪个线程,就唤醒哪个线程.

7.spring mvc 原理

8.spring加载类的原理

9.aop和ioc原理

答:动态代理和反射

10.静态代理和动态代理的区别

答:前者在程序运行之前就把类或方法进行代理完毕,而后者是在程序运行时,进行代理。

11.静态变量和实例变量的区别。

12.sleep()方法和yield()方法和wait()方法之间的区别 

答:sleep()释放资源不释放锁 抛出异常

wait()放锁放资源  抛出异常

yield()都不释放  不抛出异常 只是暂停一下本线程执行

持续更新。