- mybatis的一级二级缓存
mybatis的的一级缓存是SqlSession级别的缓存,一级缓存缓存的是对象,当SqlSession提交、关闭以及其他的更新数据库的操作发生后,一级缓存就会清空。
二级缓存是SqlSessionFactory级别的缓存,同一个SqlSessionFactory产生的SqlSession都共享一个二级缓存,二级缓存中存储的是数据,当命中二级缓存时,通过存储的数据构造对象返回。查询数据的时候,查询的流程是二级缓存>一级缓存>数据库。
- Class.forName和ClassLoader的区别
第一个不但类加载还初始化static
第二个只加载类
- SpringBoot Starter原理
注解的扫描,tomcat的配置,视图解析器的配置,自动配置持久层,自动配置日志框架,Spring事务管理器
- 索引在哪存储
存储在硬盘,sql启动读入内存,工作在内存
- redis缓存击穿和雪崩
某一个缓存失效的瞬间,接受了高并发,就是击穿
一堆缓存失效的瞬间,接受了高并发,就是雪崩
- 异或是啥意思
相同为1,不同为0
-
进程创建的四个步骤
1 .申请一个空闲的PCB
2 . 为新进程分配资源
3 . 为新进程的PCB初始化
4 . 将新进程加入到就绪队列 -
GC Roots是什么
可达性分析的起点:从“GC Roots”对象开始向下搜索,如果一个对象到“GC Roots”没有任何引用链相连,说明此对象可以被回收
- 哪些对像可作为gc roots
1 . 虚拟机栈(栈帧中的本地变量表)中引用的对象。
2 . 方法区中类静态属性引用的对象。
3 . 方法区中常量引用的对象。
4 . 本地方法栈中JNI(即一般说的Native方法)引用的对象
- 本地方法是啥
- Spring框架中Bean的5个作用域?
singleton单例:是spring默认缺省的,全局只有一个对象。
prototype原型:每次都是新的Bean实例,有状态的Bean建议用此类型。
request:一次Http请求中,容器返回同一实例Bean,仅在当前Http Request内有效
session:一次Http Session中,容器返回同一实例Bean,仅在当前Session内有效。
global session:一个全局的Http Session中,容器返回同一个实例Bean。
- 什么是自旋锁?
类似于互斥锁,一个资源被锁住,另一个线程要访问,但是被阻塞了,那就只能进行不断的循环访问,但是不能一直busy waiting,要设置循环次数。
- Arrays.sort的特点?
[length]47以下用插入,47-286用双轴快速排序,286+连续性好用归并,286+连续性不好用快排
- RPC算WebService吗?
WebService是RPC的一种实现
- 实例化的几种方法
clone,反序列化,反射
- 初始化和实例化怎么区分
假设Student stu = new Student();如果Student类没有被加载过,那就是先初始化再实例化,如果加载过,就是直接实例化。
- 什么是反射
反射就是在运行过程中获取类的信息,并能调用类的方法
- Servlet生命周期
加载,初始化,使用,销毁。
- Servlet使用阶段的步骤
http请求先存储到Dispatch Servlet容器,然后经过Servlet Adapter进行过滤一下,经过Servlet Mapping进行匹配路由地址,根据地址解析到控制层的接口,然后控制层通过接口层的方法,对Model进行ORM,执行结束,资源释放。
- 事务的四大属性
原子性 一致性 隔离性 持久性