1.Mybatis与Ibatis的区别
Mybatis实现了接口绑定,使用更加方便。
在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件,
而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便
对象关系映射的改进,效率更高
2.Http1与Http2的区别
- HTTP2使用的是二进制传送,HTTP1.X是文本(字符串)传送
- HTTP2支持多路复用
- HTTP2头部压缩
- HTTP2头部压缩
3.SpringMVC的执行流程
- 用户发送请求到DispatchServlet
- DispatchServlet根据请求路径查询具体的Handler
- HandlerMapping返回一个HandlerExcutionChain给DispatchServlet HandlerExcutionChain:Handler和Interceptor集合
- DispatchServlet调用HandlerAdapter适配器
- HandlerAdapter调用具体的Handler处理业务
- Handler处理结束返回一个具体的ModelAndView给适配器 ModelAndView:model-->数据模型,view-->视图名称
- 适配器将ModelAndView给DispatchServlet
- DispatchServlet把视图名称给ViewResolver视图解析器
- ViewResolver返回一个具体的视图给DispatchServlet
- 渲染视图
- 展示给用户
4.JVM内存溢出具体指哪些内存区域?都会抛出什么异常?
除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能
具体解析参考:https://www.cnblogs.com/binyue/p/3927105.html
5.谈谈对AJAX的理解
jax是Asynchronous javascript and XML的缩写,这一技术能够向服务器请求额外的数据而无需卸载整个页面,会带来良好的用户体验。传统的HTTP请求流程大概是这样的,浏览器向服务器发送请求-〉服务器根据浏览器传来数据生成response-〉服务器把response返回给浏览器-〉浏览器刷新整个页面显示最新数据,这个过程是同步的,顺序执行。
AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求)从服务器获取数据,这里的异步是指脱离当前浏览器页面的请求、加载等单独执行,这意味着可以在不重新加载整个网页的情况下,通过JavaScript接受服务器传来的数据,然后操作DOM将新数据对网页的某部分进行更新,使用Ajax最直观的感受是向服务器获取新数据不需要刷新页面等待了。
6.谈谈对事务的理解
http://blog.csdn.net/fengchao2016/article/details/70207222
7.String能被继承吗?为什么?
因为Sting是这样定义的:public final class String extends Object,里边有final关键字,所以不能被继承
8.谈谈继承和聚合
https://www.cnblogs.com/xdp-gacl/p/4058008.html
9.什么是深拷贝和浅拷贝?
在之前的博客中有写
10.说说常见的几个运行时异常
- ClassCastException(类转换异常)
- IndexOutOfBoundsException(数组越界)
- NullPointerException(空指针)
- ArrayStoreException(数据存储异常,操作数组时类型不一致)
- IO操作的BufferOverflowException异常
11.JDK引入泛型是解决什么问题的?
如果在一个类内部,成员变量一开始不知道用的时候会赋值为什么类型的时候,会非常头痛,类型转换也是个大问题.
12.谈谈hashCode与equals之间的关系
如果两个对象相同,那么它们的hashCode值一定要相同
如果两个对象的hashCode相同,它们并不一定相同
equals()相等的两个对象,hashcode()一定相等
equals()不相等的两个对象,却并不能证明他们的hashcode()不相等
13.谈谈反射机制
在之前的文章有整理过
14.常用的JVM设置参数都有哪些?
-Xms3550m, 初始化堆大小。通常情况和-Xmx大小设置一样,避免虚拟机频繁自动计算后调整堆大小。
-Xmx3550m,最大堆大小。
-XX:Permsize=512m,设置永久代初始值。
-XX:MaxPermsize=512m,设置永久代的最大值。
注:Java8没有永久代说法,它们被称为元空间,-XX:MetaspaceSize=N
15.Spring Boot是什么?
从本质上来说,springboot是一个专注于框架的框架。Spring Boot就是对各种框架的整合,让他们集成在一起更加简单,简化了我们在集成过程中的模板化配置,它做了那些没有它你自己也会去做的Spring Bean配置
16.谈谈Spring事物传播特性
在之前的文章有整理过
17.Spring有哪几种事物管理机制?
http://blog.csdn.net/jeamking/article/details/43982435
18.ACID是指什么?
Atomic(原子性)
Consistency(一致性)
Isolation(隔离性)
Durability(持久性)
19.谈谈Mysql中的Btree和B+Tree算法
https://www.cnblogs.com/vianzhang/p/7922426.html
20.谈谈Mysql中in和exists的应用场景
select * from A where exists (select * from B where A.id=B.id); select * from A where A.id in (select id from B);
1、exists是对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么是对内表的查询使用的索引,而外表有多大都需要遍历,不可避免,故内表大的使用exists,可加快效率;
2、in是把外表和内表做hash连接,先查询内表,再把内表结果与外表匹配,对外表使用索引,而内表多大都需要查询,不可避免,故外表大的使用in,可加快效率。