对线面试官的资本
该随笔来自知乎大佬的回答,稍作整理。
起源是一位小白的美好幻想,MVC+Mybatis想唬住面试官。
基础
-
接口及常见问题
-
@Autowired
-
@Component @Repository @Service @Controller
-
写好接口壳子,入参是一个,多个,集合,文件?出参 是一个,多个,集合,文件
-
接口文档
swagger -> knife4j、springfox
-
参数校验
springboot+validation
JSR303
-
开源工具包
- apache commons
- goole guava
- hutools
- lombok
-
java8 optional
-
异常处理
-
springboot
- 原理,搭建,主要配置
- 事务
-
mybatis
-
@select,@update
-
mybatis动态参数 注解/xml文件方式
-
pagehelper分页
-
-
精通ssm
-
aop,ioc 默写全文声明事务以及事务传播的方式
-
默写全文spring事务不生效的原因
-
默写全文什么是数据库连接池,
-
你怎么用(hikari,druid)背诵并默写全文spring多数据源配置
-
请简述主要步骤.mybatis #{}和${}啥区别(其实这是ognl表达式..)
-
Mybatis都有哪些Executor执行器Mybatis的一级、二级缓存sqlsession生命周期..
提高
mysql
- mysql innodb原理
- mysql事务隔离级别 必问
- mysql索引原理(就是背诵b树,b+树)
- sql优化
- 执行计划
- msql不走索引的原因
- 乐观锁
- inner join,left join,right join
- mysql左原则
- 大小表查询优化
redis
- 高频数据
- 共享数据
- 分布式锁
SQL装逼
- 列转行
- 开窗函数
- 分页优化
- 使用子查询优化
- 使用 id 限定优化
- 批量插入数据
- mysql原理
jvm装逼
- jvm内存模型
- 复制回收算法。
- 标记回收算法。
- 分代回收算法。
- 引用计数法
- 可达性分析
- 串形收集器 s开头
- 并行收集器 p开头
- cms 1.7 并行标记回收算法
- g1 jdk10 混合 可预测,延迟小
- zgc jdk16 牛逼,神一般,甚至1-2毫秒
- 垃圾回收工作回占用资源
jdk特性装逼
1.9+没人用
- 1.8
- default
- Lambda,stream
- 双冒号
- LocalDate
- optional
- 1.9
- 模块化
- 10
- var
- g1
- 11
- 字符串去除首位空格,判断空
- 12
- switch 多条件
- 13
- Scala 三引号
- 14
- instanceof 内部自动转类型
- record 省略getset
- switch 函数作为条件
- 15
- zgc 性能更牛逼
jvm调优装逼
-
大体思路
-
序列化
-
去除魔法值
-
构造函数注入bean
-
foreach替换for
-
nacos替换eureka
-
okhttp/fegin替换httclient
-
更新springboot,springcloud版本
-
Apache codec替换sun包加密
-
-
具体问题(提高接口响应速度)
- 懒加载字段
- redis
- elasticsearch