![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
随便记录的思想笔记
文章平均质量分 69
Fairy要carry
欲戴其冠,必承其重
展开
-
Mysql模糊匹配的思路
备注:keyword是要搜索的内容,field为被匹配的字段,查询出所有存在keyword的数据。索引能够有效的起到过滤,效率较高。这种会导致索引失效(前模糊)索引会失效,了解下即可。原创 2022-12-22 10:19:00 · 169 阅读 · 0 评论 -
SpringBoot+MDC实现链路调用日志
MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,只需要从 MDC 中获取所需的信息即可。MDC 的内容则由程序在适当的时候保存进去。对于一个 Web 应用来说,通常是在请求被处理的最开始保存这些数据。原创 2022-12-19 12:11:00 · 2087 阅读 · 1 评论 -
ChatGPT
代码放这上面了,Java封装了一下调用了ChatGPT的接口。原创 2022-12-10 18:33:48 · 1551 阅读 · 0 评论 -
单例模式深入
前言:今天公司让我搭建设计模式的课程,结果在单例模式被教训了一波,发现有很多都没有深入1.单例类:2.反射破坏单例模式:本质利用类的构造方法得到类的实例结果:发现是不同的实例——>原因:反射获得单例类的构造函数,使得单例类失效3.如何预防?因为我们反射它是调用了零次构造函数所以我们只需要防止连续被调用两次构造函数即可,需要进行次数统计(多线程下需要保证次数count不安全的情况)在构造函数里面进行上锁判断count如果>0说明前面有人来过,抛出异常即可,否则count++;结果抛出异常1.单原创 2022-12-05 21:45:58 · 365 阅读 · 0 评论 -
SEO技术
1.利用爬虫将网页内容爬取放到数据库中——>2.然后利用索引程序获取数据(ES等),创建索引库——>3.用户搜索就能通过索引搜索到网页内容比如我们的Thymeleaf,JSP技术,控制器model/modelAndView将数据添加到视图中,然后服务器Tomcat中Thymeleaf对model中的数据进行渲染到视图上,最后解析完毕形成一个完整的html页面并且包含数据这就是服务端渲染技术主要是利用JS将我们的json数据渲染上去,也就是我们标准的前后端分离,请求我们的后台接口将数据传过去客户端渲原创 2022-12-04 09:15:53 · 165 阅读 · 0 评论 -
讲点登录业务
通过判断用户是否有服务器赋予的session_id,点对点服务器的用户信息,确认用户身份缺点: 单点性能压力大无法扩展,如果是分布式的话,其他的服务怎么进行认证呢?我们可以将session的认证信息(多个服务session肯定是不一样的,毕竟服务器都不一样了),我们可以放到Redis 中——>来保证Session共享数据信息;利用Token结合用户的唯一标识生成一个唯一id(作为用户凭证),**(作为key,value为用户信息)**放到Redis中,当用户进行登录的时候,对token进行解析,如果re原创 2022-12-04 00:25:45 · 717 阅读 · 0 评论 -
智能合约介绍
智能合约是区块链实现可编程化的重要工具;在比特币时期,脚本仅限于描述交易得到内容和状态;随着智能合约的出现可以定义任何数据对象的状态擦欧总——>使其成为网络上的“法律条文”或者“商业共识”。相当于网络中的道德准则,不被第三方操控,公道在人心。原创 2022-11-28 08:45:02 · 1246 阅读 · 1 评论 -
SEO的了解
SEO,也就是搜索引擎优化的逻辑,其实是非常简单的。这就像是在大学里的学生会主席,你要让投票者给你更多的选票。那么,你需要先「自我优化」,无论是外表还是能力;此外,你还需获得更多意见领袖的推荐,才可以让更多普通选民支持你。原创 2022-11-18 15:02:18 · 234 阅读 · 0 评论 -
区块链的认识
就是大家共同维护的账本,点对点的,并且公开透明并且难以篡改。原创 2022-11-06 16:51:27 · 1403 阅读 · 2 评论 -
利用AtomicInteger完成一个可重入锁(含阻塞队列)
【代码】利用AtomicInteger完成一个可重入锁(含阻塞队列)原创 2022-09-23 13:56:19 · 266 阅读 · 0 评论 -
面试题—JAVA基础9.19/20
1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。原创 2022-09-20 17:35:16 · 355 阅读 · 0 评论 -
Redis分布式锁的实现
1)加锁和解锁都用Lua脚本,脚本中判断各种可能的逻辑(有过期时间的设置,判断是不是自己的锁,是否是重入等),也保证了判断和加锁的原子性 解决上面讲的问题一二三四。总结:所谓的分布式锁,就是用一个第三方的数据库,所有线程(包括同一个进程中的和不同进程中的)都访问的是这个数据库(这对于所有线程就是唯一的),使用逻辑锁就可以使各个线程之间不会出现并发问题。解锁用 redisTemplate.opsForValue().delete("lock");原创 2022-09-16 01:13:09 · 2615 阅读 · 0 评论 -
有状态服务和无状态服务
在后来的发展进程中,逐渐在无状态化的过程中,加入状态化的信息,比如COOKIE。COOKIE的存在,是无状态化向状态化的一个过渡手段,他通过外部扩展手段,COOKIE来维护上下文关系。他在服务端维护每个连接的状态信息,服务端在接收到每个连接的发送的请求时,可以从本地存储的信息来重现上下文关系。有状态服务则相反,服务会存储请求上下文相关的数据信息,先后的请求是可以有关联的。状态化服务器在功能实现方面具有更加强大的优势,但由于他需要维护大量的信息和状态,在性能方面要稍逊于无状态服务器。原创 2022-09-08 01:06:31 · 435 阅读 · 0 评论 -
Mybatis伪代码getMapper手写
【代码】Mybatis伪代码getMapper手写。原创 2022-09-01 10:02:01 · 301 阅读 · 0 评论 -
Redis面试
大多数情况下,Redis使用简单字符串SDS作为字符串的表示,相对于C语言字符串,SDS具有常数复杂度获取字符串长度,杜绝了缓存区的溢出,减少了修改字符串长度时所需的内存重分配次数,以及二进制安全能存储各种类型的文件,并且还兼容部分C函数。通过为链表设置不同类型的特定函数,Redis链表可以保存各种不同类型的值,除了用作列表键,还在发布与订阅、慢查询、监视器等方面发挥作用(后面会介绍)。.........原创 2022-08-17 00:29:26 · 411 阅读 · 0 评论 -
Spring面试(源码手撕)
帮助那些没有经历完整生命周期的单例bean对象进行存储,防止创建多个bean,创建多个不完整的bean,在后期会继续我们的bean生命周期,放到单例池中。原创 2022-08-10 12:55:20 · 502 阅读 · 1 评论 -
Sentinel的限流和GateWay的限流有什么差别(算法)
则采用了基于Redis实现的令牌桶算法由服务端决定生成token的速度,然后请求从令牌桶中获取token,这里面有个类似于Sentinel中流控效果中的warmup,生成token的速度会慢慢递增防止请求一下增大打死服务器。假设我们的窗口拆分成了3个小窗口,小窗口都是20秒,同样基于上面的例子,当在第三个20秒的时候来了100个请求,可以通过;指的是以一定速度往令牌桶里面丢令牌。,如果桶已经满了就不再加了(说明令牌桶算法和漏桶算法相反,漏桶算法是按照客户请求的数量往漏桶中加水的,而。...原创 2022-08-02 12:49:36 · 2597 阅读 · 0 评论 -
面试-SpringCloud常见组件和注册表结构+nacos
Nacos原创 2022-08-01 23:09:09 · 887 阅读 · 0 评论 -
通过递归实现多级联动
主要是子菜单添加到主节点这个方法,并且返回主节点首先需要在主节点设置children集合,然后遍历所有数据,找到与父菜单相对应的菜单,并且设置层级level,判断父菜单children为null后,将满足条件的子菜单加入父中。获取全部菜单用list返回是因为后面还是要添加父菜单的,所以得用list,不好直接返回父菜单,思路不好找,当然也许。其实很简单,也是找当前父菜单的子菜单,然后对子菜单进行递归就好了,所有的id添加到集合中,最后delete行删除。我们的id是当前菜单,pid是父菜单。...原创 2022-07-29 00:00:00 · 531 阅读 · 0 评论 -
集合-实习猎杀面试管(小撕源码)
java中实现的。源码如下记住这个intexpectedModCount=modCount,每次创建interator时候都会保存新建该对象对应的modCount。原创 2022-07-22 01:50:49 · 233 阅读 · 0 评论 -
总结一下前后端分离业务流程
核心@ControllerAdvice+@Slf4j+@ExceptionHandler(xxx.class)5.3然后再在具体页面调用封装后台接口的js文件,调用里面的方法。5.1在我们的config下配置了路由信息dev.env.js。9001是我们nginx负载均衡的端口。监听9001端口根据名称进行路由。5.2定义我们的后台api。里面调用了我们后台的接口。返回我们的json数据。...原创 2022-07-20 09:22:10 · 501 阅读 · 0 评论 -
(面试)SpringBoot启动原理-源码(深入)
,了解JVM就知道每一个Java类都会创建一个C++实例,也就是Klass实例(里面有instanceKlass专门描述Java的)->存储了Java类中描述的方法字段等等,我们的Class对象与方法区中的klass互指,所以可以得到方法区中的类信息。这里再提一下反射真的重要,结合JVM来思考,简而言之这里就是通过类加载器加载字节码文件产生类对象,我们类对象中含有instanceKlass的地址(Class对象也就是我们常说的mirror,暴露给我,的。...原创 2022-07-20 00:01:57 · 1103 阅读 · 0 评论 -
手撕HashMap(1.7)
本质其实就是数组+链表,我们的数组主要查询速度很快,我们每次放入元素,会验证它的位置是否冲突->如果该位置没人,我们就会进入addEntry方法,创建一个当前空节点(比如当前i位置),是一个空节点,然后我们再将赋值的新节点平替当前i位置节点,然后next为空节点;插入:如果当前位置有节点,也就是不为空,就会得到它的next,比如上面的i位置,它现在是有值的,但是它的next就是之前的空节点所以当前位置节点下一位置为null,然后我们验证hash值比较,发现key、hash值都不等(毕竟是空节点)->然后我们原创 2022-06-29 21:35:42 · 235 阅读 · 0 评论 -
牛客网刷题(垃圾回收+Socket+串池+类加载+事务)
目录垃圾回收 事务隔离级别字符串 Socket通信编程 ServerSocket类Socket类引用 开发人员是不能参与GC机制的,System.gc(),只是一个提醒,具体什么时候GC是不知道的,而且提醒的是Full GC,并不是Minor GC;复习一下:首先得判断哪些是垃圾,一般现在用的是可达分析法,类似树的遍历,从GC root进行遍历访问,只要是这个链条上的对象都是可以访问的,起点必须是GC Root,否则都是垃圾;具体五种引用:(30条消息) JVM-02阶段学习_Fairy要carry的博客原创 2022-06-14 09:08:29 · 183 阅读 · 0 评论 -
JVM-字节码是如何被JVM执行的+关于线程一点思想引子
目录相关资源:运行时数据区域运行时栈帧结构 (25条消息) jvm到底是什么?有什么作用?工作机制如何?_weixin_39214481的博客-CSDN博客_jvm的作用下面提到程序计数器和虚拟机栈都是线程私有的,一个指引线程执行的命令,一个存放栈帧——>这让我想到ThreadLocal,保证了线程的隔离性;(25条消息) ThreadLocal 是什么?有哪些使用场景?_ConstXiong的博客-CSDN博客_threadlocal是什么这一篇介绍jvm是如何执行字节码的。本篇介绍的jvm执行引擎以jv原创 2022-06-09 14:56:10 · 527 阅读 · 1 评论 -
Mybatis一二级缓存+复习+总结
补充:当开启一个会话后,二级缓存中,SqlSession会使用一个Executor对象来完成会话——>二级缓存中的关键在于这个Executor对象,用户配置cacheEnabled=true开启二级缓存后——>SqlSession会使用CachingExecutor对象来完成操作请求;对于查询请求,CachingExecutor会先判断请求是否在Cache中有结果,如果有查询结果,则直接返回缓存结果;如果缓存中没有,再交给真正的Executor对象来完成查询操作,之后CachingExecutor会将真正E原创 2022-06-07 17:03:06 · 98 阅读 · 0 评论 -
每天一点别人的笔记
finalizeJava对象的销毁、你真的知道吗? - 掘金 (juejin.cn)舱壁模式(20条消息) 大牛都懂的Hystrix RPC保护的原理,RPC保护之舱壁模式,你还不学_该用户快成仙了的博客-CSDN博客今天学微服里舱壁模式突然想到一些东西:舱壁模式——>服务中调用的业务分配线程池,但是问题来了,它不是有缺点嘛:当大量请求到服务A,从而调用业务也就是服务C时,还是会浪费部分资源,也就是线程池那部分;但是我认为是可以改进的——>浪费资源,我认为是请求不断进行.原创 2022-05-30 21:38:40 · 89 阅读 · 0 评论