![](https://img-blog.csdnimg.cn/direct/ed44b081869f4a868dfa7252f8dbb68d.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java八股
文章平均质量分 91
致力分享八股
dlwlrma ⥳
致力分享每一天学到的Java知识
展开
-
何为乐观锁和悲观锁
乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生 活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以 场景而定说一种人好于另外一种人。原创 2024-08-12 23:21:34 · 535 阅读 · 0 评论 -
Spring boot的最全注解
在springboot实际开发中常用的注解总结原创 2024-08-08 21:20:26 · 615 阅读 · 0 评论 -
缓存常见问题总结
缓存穿透:请求一个不存在的数据,缓存层和数据库层都没有这个数据,这种请求会穿透缓存直接到数据库进行查询。它通常发生在一些恶意用户可能故意发起不存在的请求,试图让系统陷入这种情况,以耗尽数据库连接资源或者造成性能问题。查询一个缓存中不存在的数据将会执行方法查询数据库,数据库也不存在此数据,查询完数据库也没有缓存数据,缓存没有起到作用。原创 2024-08-04 16:48:12 · 1076 阅读 · 0 评论 -
Spring系列一
控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定耦合对象的一种编程技巧,对象之间耦合关系在编译时通常是未知的。在传统的编程方式中,业 务逻辑的流程是由应用程序中的早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业务逻辑的流程是由对象关系图来决定的,该对象关系图由装配 器负责实例化,这种实现方式还可以将对象之间的关联关系的定义抽象化。而绑定的过程是通过“依赖注入实现的。控制反转是一种以给予应用程序中目标组件更多控制为目的设计范式,并在我们的实际工作中起到了有效的作用。原创 2024-08-03 22:08:49 · 587 阅读 · 0 评论 -
Spring Boot系列
是Spring社区的产品,它提供了配置Spring IoC容器的纯Java方法。因此它有助于避免使用XML配置。使用JavaConfig的优点在于:面向对象的配置。由于配置被定义为JavaConfig中的类,因此用户可以充分利用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等。减少或消除XML配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在XML和Java之间来回切换。JavaConfig。原创 2024-07-31 14:45:59 · 633 阅读 · 0 评论 -
Redis系列
指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到DB去查询,可能导致DB挂掉。解决方案1、查询返回的数据为空,仍把这个空结果进行缓存,但过期时间会比较短2、布隆过滤器:将所有可能存在的数据哈希到一个足够大的bitmap中,一个一 定不存在的数据会被这个 bitmap拦截掉,从而避免了对DB的查询对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这时间点对这个Key。原创 2024-07-31 14:18:49 · 854 阅读 · 0 评论 -
IO的分类有哪些
BIO:同步阻塞IOJDK1.4之前,建立网络连接的时候采用BIO模式,先在启动服务端socket,然后启动客户端socket,对服务端通信,客户端发送请求后,先判断服务端是否有线程响应,如果没有则会一直等待或者遭到拒绝请求,如果有的话会等待请求结束后才继续执行。线程发起IO 请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。原创 2024-07-28 17:58:16 · 589 阅读 · 0 评论 -
并发编程篇
自旋锁是基于CAS实现的。CAS没有自旋或者重试的效果,但是自旋锁是基于类似do-while的形式,不断尝试,直到成功为止。CAS本质就是Unsafe类中的一个方法,他只会尝试一次,成功返回true,失败返回false。CAS并不是在Java端实现的一个功能,而是在C++里面做的。最终CAS会被翻译成一个指令。Atomic::cmpxchg,而这个指令是CPU原语,CPU认识这个指令。原创 2024-07-26 23:52:54 · 716 阅读 · 2 评论