1.项目
redis
k8s
jenkins
niginx
docker
http://www.bjpowernode.com/hot/608.html
https://www.cnblogs.com/xiaoyangjia/p/11388806.html-
2.基础
计算机网络+操作系统
POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT
向指定资源位置上传其最新内容。
https://www.cnblogs.com/mafeng/p/10207546.html
https://blog.csdn.net/weixin_37569048/article/details/80653590
幂等性
https://blog.csdn.net/qq_34162294/article/details/105260149
3.源码细节
1.jvm gc
java 调用gc 命令
https://www.cnblogs.com/Leon-The-Professional/p/9991589.html(copying gc 详解)
https://blog.csdn.net/tjiyu/article/details/53983064(火车算法)
https://www.zhihu.com/question/52213790(火车算法和G1区别)
2.Spring AOP
bean类(需要加强)
3.MYSQL
就问了binlog和redolog区别(这两个如何恢复 redolog和undolog使用 参考ARIES RECOVERY https://www.jianshu.com/p/2ac301e54f62)
4.REDIS
5.雪花算法
6.反射效率慢的原因
https://blog.csdn.net/mandy1526/article/details/117195647
7.ThreadLocal
https://zhuanlan.zhihu.com/p/150682678
8.线程池以及线程池关键参数以及新任务处理
(1) newSingleThreadExecutor: 创建一个单线程的线程池, 此线程池保证所有任务的执行顺序按照任务的 提交顺序执行。
(2) newFixedThreadPool: 创建固定大小的线程池, 每次提交一个任务就创建一个线程, 直到线程达到线 程池的最大大小。
(3) newCachedThreadPool: 创建一个可缓存的线程池, 此线程池不会对线程池大小做限制,线程池大小 完全依赖于操作系统(或者说 JVM) 能够创建的最大线程大小。
(4) newScheduledThreadPool: 创建一个大小无限的线程池, 此线程池支持定时以及周期性执行任务的需求。
(5) newSingleThreadExecutor: 创建一个单线程的线程池。 此线程池支持定时以及周期性执行任务的需求。
https://blog.csdn.net/qq_33453910/article/details/81413285
https://blog.csdn.net/ye17186/article/details/89467919
9.linux常用指令
排序 搜索
10.Quartz
11.开发过程中印象深刻的难点
12.LinkedHashMap HashMap 线程安全的集合
线程安全的集合 vector HashTable sycArrayList sycHashSet sycHashMap ConcurrentHashMap CopyOnWriteArrayList CopyOnWriteArraySet 它们两个是加了写锁的ArrayList和ArraySet,锁住的是整个对象,但读操作可以并发执行
https://blog.csdn.net/lkforce/article/details/89521318
https://blog.csdn.net/tongdanping/article/details/79589253
https://blog.csdn.net/lixiaobuaa/article/details/79689338
ArrayList源码 (继承了RandomAccess 就是一个接口)https://www.cnblogs.com/neverth/p/11786048.html
https://blog.csdn.net/xujing_2017/article/details/87939013
https://blog.csdn.net/weixin_42373997/article/details/112085344(透彻)
13.数据库索引 三范式
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。(确保每列保持原子性)
第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。(确保表中的每列都和主键相关)
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。(确保每列都和主键列直接相关,而不是间接相关)
14.CAP BASE
15.redis为什么不能作为消息中间件
消息中间件的两个条件
1.可以缓存数据
2.不会产生消息丢失
redis不能做到不丢 而且缓存在内存 有大小限制
16.git
https://blog.csdn.net/yxlshk/article/details/79944535
17.错误排查
https://blog.csdn.net/ilovekdd/article/details/108816740?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
Arthas 是阿里巴巴开源的Java 诊断工具,基于 Java Agent 方式,使用 Instrumentation 方式修改字节码方式进行 Java 应用诊断。
dashboard :系统实时数据面板, 可查看线程,内存,gc 等信息
thread :查看当前线程信息,查看线程的堆栈,如查看最繁忙的前 n 线程
getstatic:获取静态属性值,如 getstatic className attrName 可用于查看线上开关真实值
sc:查看 jvm 已加载类信息,可用于排查 jar 包冲突
sm:查看 jvm 已加载类的方法信息
jad:反编译 jvm 加载类信息,排查代码逻辑没执行原因
logger:查看logger信息,更新logger level
watch:观测方法执行数据,包含出参、入参、异常等
trace:方法内部调用时长,并输出每个节点的耗时,用于性能分析
tt:用于记录方法,并做回放