本文首发于cartoon的博客
转载请注明出处:https://cartoonyu.github.io/c...java
java
-
java对象引用类型以及对象回收的策略mysql
-
强引用git
- 经过显式的new或反射生成对象
- 不会被回收
-
软引用github
- 在内存不足的时候会回收
-
弱引用算法
- 不管内存是否足够,GC都会回收
-
虚引用sql
- 不管何时都会被回收
-
java注解的做用数据库
- 文档生成
- 编译检查
- 标识功能
-
乐观锁与悲观锁的区别缓存
-
数据的修改认为上服务器
- 乐观锁认为数据不会被修改
- 悲观锁认为数据总被修改
-
锁的种类上post
- 乐观锁对写操做不加锁
- 悲观锁在读写操做都加锁
-
执行方法上
- 乐观锁经过版本号以及CAS算法实现
- 悲观锁经过锁的等待与释放实现
-
执行效率上
- 乐观锁比悲观锁的效率高
-
数据正确性上
- 悲观锁比乐观锁的要好
-
使用场景
- 悲观锁用于写操做频繁的场景
- 乐观锁用于读操做频繁的场景
-
CAS与synchronized的使用场景
- CAS不断自旋更新选定的值,用于读操做频繁的场景
- synchronized经过锁的竞争以及释放进行互斥资源的访问,用于写操做频繁的场景
数据库
-
数据库select语句的执行流程(客户端到存储引擎)
- 客户端经过TCP三次握手与服务端进行链接
- 链接器判断帐号信息是否有效
- 有效,则进入第三步
- 无效,链接器返回Access denied的错误
-
查询缓存中是否有执行的记录
- 不建议使用,能够经过query_cache_type关闭,MySQL 8.0去除了查询缓存的功能
- 有执行记录,则返回上次执行结果
- 没有执行记录,进入第四步
-
分析器进行词法分析,语法分析
-
词法分析
- 判断输入的SQL语句中的关键词的含义
-
语法分析
- 判断SQL是否合法
- 若合法,进入第五步
- 若不合法,返回 You have an error in your SQL syntax错误到客户端
-
sql语句通过优化器选择最佳执行策略
- 多索引状况下的最佳索引的选择
- 多表关联时决定表的链接顺序
-
sql语句交由执行器进行存储引擎的操做并返回结果
- 根据from找到须要查询的表,根据where造成有效的结果集合
- (若是有order by,对数据进行排序)select返回结果
-
数据库更新语句的执行流程(客户端到存储引擎)
- 客户端经过TCP三次握手与服务端进行链接
-
链接器判断帐号信息是否有效
- 有效,则进入第三步
- 无效,链接器返回Access denied的错误
-
查询缓存中是否有执行的记录
- 不建议使用,能够经过query_cache_type关闭,MySQL 8.0去除了查询缓存的功能
- 有执行记录,则返回上次执行结果
- 没有执行记录,进入第四步
-
分析器进行词法分析,语法分析
-
词法分析
- 判断输入的SQL语句中的关键词的含义
-
语法分析
- 判断SQL是否合法
- 若合法,进入第五步
- 若不合法,返回 You have an error in your SQL syntax错误到客户端
- sql语句通过优化器选择最佳执行策略
- sql语句交由执行器进行存储引擎的操做并返回结果
-
两段式提交
- 检查并读入相关数据页到内存
-
将更新语句的操做行写入内存
- 写入操做记录到readlog中,处于prepare状态
- 写入操做记录到binlog中
- 事务提交,处于commit状态
-
mysql执行计划的了解
-
指定场景
- server层中的分析器中
-
做用
- 得出最佳sql执行状况,加快访问速度以及减小资源的消耗
- 使用explain+sql语句进行计划的查看
-
相关概念
- type(链接的类型)
- possible_keys(可能使用到的索引)
- key(使用到的索引)
- Mysql中Text与Blob的区别
- 存储数据表现形式
- Text只能存储文本型数据
- Blob存储二进制的大数据
- 大小写敏感
- Text大小写不敏感
- Blob大小写敏感
- 使用场景
- Text存储大文本
- Blob存储小文件型数据
计网
-
TCP滑动窗口的了解
- 滑动窗口是TCP发送进程控制数据发送的速度以及数据传输可靠性的重要保证
-
有关概念
- 从左到右是自定义指针p1,p2,p3
- p1左的数据都是已发送已收到确认的数据,p1就是发送进程的发送窗口的左边界
- p3右的数据当前时刻不容许发送的数据,p3是发送进程发送窗口的右边界
-
p2在p1与p3之间
- p1至p2的数据,是已发送未确认的数据。收到确认后,p1进行右移;若出现丢失或者超时,重传p1与p2之间的数据
- p2至p3是容许发送未发送的数据区间。
- TCP的发送窗口根据服务器端回传的确认报文或者拥塞控制进行扩大或缩小。
- 对称加密与非对称加密的区别以及常见算法
- 区别
- 对称加密用同一密钥进行加密与解密
- 非对称加密用公钥进行加密,私钥进行解密
- 常见算法
-
对称加密
-
DES
- AES
-
非对称加密
-
DSA
- RSA
操做系统
-
用户态与内核态的区别
-
操做范围
- 用户态在内存中运行
- 内核态能够操做IO,外设等
-
执行指令
- 用户态只能执行非特权指令
- 内核态能够执行特权指令
-
抢夺处理机
- 用户态能够抢占处理机
- 内核态不能够抢占处理机
-
磁盘调度算法
- 先来先服务
- 最短距离优先
- 扫描算法
- 循环扫描算法
算法
- 学生出勤记录 I
[
](https://leetcode-cn.com/probl...