Mybatis的原理
- 三个核心组件
- Sqlsessionfactory
- Sqlsession
- Mapper
- 工作流程
- 读取配置
- 创建 SqlSessionFactory:使用 SqlSessionFactoryBuilder 创建 SqlSessionFactory
- 创建 SqlSession
- SQL 映射
- 接口全限名-------namespace
- 接口方法名-------mapperstatedment的id值(方法可以重载,id不能重复)
- 方法内参数-------传递给sql的参数值
- 执行 SQL
- 结果映射
- 提交事务
- 关闭 SqlSession
- 动态sql
- 缓存机制
Java的四种引用
强引用:绝对不会回收
软引用:有内存不回收,没内存回收
弱引用:发现即回收
虚引用:任何时候都可能被回收,主要用来跟踪对象被垃圾回收的活动
锁升级
当我们执行 UPDATE、DELETE 语句时,如果 WHERE条件中字段没有命中唯一索引或者索引失效的话,就会导致扫描全表对表中的所有行记录进行加锁
输入一个网址到显示发生了什么?
- 通过DNS查找IP地址
- 浏览器缓存--本机缓存--本地DNS---根服务器---逐级向下查找(迭代、递归),本地DNS找到后返回给主机
- 向服务端发起http请求
- 先建立TCP连接,再发送请求
- 服务端处理请求
- 服务器发回一个HTML响应
- 浏览器显示
TLS握手
- 客户端向服务端发送TSL版本,加密套件,第一随机数
- 服客发送TSL版本,加密套件,第二随机数
- 服客发送证书
- 服客发送公钥
- 服客结束hello
- 客服发送公钥加密后的预主密钥,finish
- 服客finish
常用的string方法有哪些?
charAt(index) 返回索引处的字符
indexOf(String str) 返回字符串首次出现的位置
contains(String str) 是否包含指定子串
split(String regex) 按照指定规则进行分割
Concat(string s) 拼接两个字符串
Equals,length,isempty,replace.......
一个切面有几个部分?
目标:被通知的对象
连接点:目标对象的类中所有的方法,都是连接点
切入点:被切面拦截的连接点
通知:拦截到后要执行的代码
切面:切入点+通知
织入:将通知应用到目标对象,进而生成代理对象的过程
array list和linkedlist区别
- arraylist底层是Object数组,linkedlist是双向链表
- Attaylist支持随机访问,linkedlist不支持
- 插入删除元素复杂度不一样
- 内存占用不一样
Right join是什么?
右连接。RIGHT JOIN 的特点是返回右表的所有记录,以及左表中匹配的记录。如果左表中没有匹配的记录,则结果中的相应列将包含 NULL。