学习视频 多看多学,保持思考。 体系阅读2022/12/3大厂分享☞☞大厂文章速读 Java基础Spring数据库阅读2022/12/3冷门又重要的6个技巧,高并发数据库优化 1234561.打破范式设计,冗余少量字段方便查询,需要注意源表和冗余表保证同一事务写。2.关联关系在业务层面约束,不依赖数据库外键3.字段拓展性,如模板信息这种结构不清晰的字段使用json类型 2022-12-03 学习视频 #视频
分布式锁(一) 为什么我们需要一把分布式锁? 为了效率(efficiency),协调各个客户端避免做重复的工作。即使锁偶尔失效了,只是可能把某些操作多做一遍而已,不会产生其它的不良后果。比如重复发送了一封同样的 email(当然这取决于业务应用的容忍度)。 为了正确性(correctness)。在任何情况下都不允许锁失效的情况发生,因为一旦发生,就可能意味着数据不一致(inconsistency),数据丢失,文件 2022-12-03 分布式 #分布式锁
过滤器和拦截器的区别 过滤器(Filter)和拦截器(Interceptor)的区别 实现原理不同 过滤器基于函数回调,一般自定义过滤器都会实现一个DoFilter()方法,这个方法包含一个FilterChain参数,此参数实际为一个回调接口。 拦截器基于Java反射机制(动态代理)实现。 适用范围不同 过滤器Filter实现基于javax.servlet.Filter接口,此接口在Servlet规范中定义,因 2022-12-03 待归类 #小记
接口数据脱敏 背景介绍项目业务(银行、医院、购物平台等)经常涉及到个人手机号、身份证号等敏感信息,针对这些信息设计对应接口时,通常接口返回值中的敏感数据需要进行脱敏操作,记录三种实现接口数据脱敏方法 方案MyBatis整合MyBatis插件,在查询的时候针对特定的字段进行脱敏 mybatis-plus的数据脱敏使用 Mybatis插件+注解实现数据脱敏 Jackson在序列化阶段对特定字段进行脱敏 自定义 2022-12-03 待归类 #小记
多线程异步和MQ的区别 区别 CPU消耗 多线程异步可能存在CPU竞争,而MQ不会消耗本机的CPU MQ方式实现异步是完全解耦的,适合于大型互联网项目 削锋或者消息堆积能力 当业务系统处于靠并发,MQ可以将消息堆积在Broker实例中,而多线程会创建大量线程,但过量的线程可能会触发拒绝策略。 使用MQ引入了中间件,增加了项目复杂度和运维难度 总结规模较小的项目可以使用多线程异步,大项目建议使用MQ实现异步 2022-12-03 Java并发编程 #小记
二叉树 二叉树二叉树的简单操作函数主要包括二叉树初始化 二叉排序树插入 前中后序遍历 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848 2022-11-17 二叉树 #二叉树
单链表 单链表每次插入一个节点都实时malloc分配空间,再使用next进行链接 代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 2022-11-16 线性表 #链表