自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 2025年3月25日面试总结

在使用联合索引(a, b, c)的情况下,如果你的查询条件只包含a和c(即忽略b),根据最左前缀原则,查询条件中必须包含联合索引的第一个字段(在这个例子中是a)才能利用到该索引。redis也是将数据存储在内存中,但是他也支持将数据持久化保存到磁盘中,可以用于数据恢复或者重启保留数据。redis依靠其高效的设计,依然能提供非常高的读写性能,并且适合跨应用的数据共享。(1)ehcache是存储在Jvm内部运行的,用来存放单个应用的缓存需求;2.使用联合索引,只查询a和c,会走索引吗。

2025-03-27 00:26:45 166

原创 2025年3月19日面试总结(二)

延迟双删--》先删除Redis缓存数据再更新Mysql,再次查询的时候在将数据添加到缓存中 , 这种方案可能仍然会有数据 , 这个时候我们可以在删除之后稍微延迟(1-2S)时间 , 再将数据删除 , 再次查询的时候进行缓存 , 这个时候就能保持一致了。删除缓存重新加载--》先删除缓存,在更新Mysql,再次查询时将数据添加到缓存中,仍然可能不一致,多线程环境下,一个线程删除了缓存,还没来得及更新mysql,另一个线程来查询了,会把mysql的老数据查询到缓存中。(1)内存不足时,淘汰最近最少使的数据。

2025-03-21 00:17:38 294

原创 2025.03.19面试总结(一)

中软:1:redis的缓存击穿是怎么回事儿?怎么预防?缓存击穿就是当某一个热点Key在缓存过期的一瞬间,同时有大量的请求打进来,由于此时缓存过期了,所以请求最终都会走到数据库,造成瞬时数据库请求量大、压力骤增,导致数据库存在被打挂的风险。 预防手段:(1)加互斥锁:当大量请求进来之后,只有第一个请求可以获得锁并阻塞其他请求,此时该亲求查询数据并将结果写入到redis里面之后释放锁,后续的请求就都会从redis中获取结果。(2)给缓存设置永不过期或者通过后台线程去根本更新缓存的过期时间

2025-03-19 23:59:38 281

原创 HasMap的知识点

在1.8版本中,则是根据在同一个桶的位置中进行判断(e.hash & oldCap)是否为0,如果为0 则留在当前位置不动 , 如果不为0 则要移动到。2.在JDK1.8中当单个链表的长度超过8的时候,在扩容时会自动转换成红黑树的数据结构;当红黑树的节点小于6个的时候,数据结构会从红黑树变成链表;在1.7 中,扩容之后需要重新去计算其Hash值,根据Hash值对节点位置进行重新分配。大小这个位置上 , 这也是为什么HashMap扩容容量为2的N次幂的一个原因。4.hashmap的扩容机制。

2025-03-12 13:49:40 316

原创 ArrayList的扩容机制为什么是1.5倍?

今天看面试题,看到一个问题像记录一下:ArrayList的扩容是按照1.5倍进行扩容的,这是为啥?为啥取1.5倍口扩容呢?ArrayList底层是数组elementData,用于存放插入的数据。初始大小是0,当有数据插入时,默认大小DEFAULT_CAPACITY = 10。

2025-03-10 22:13:04 275

原创 RabbitMQ 入门 —— RabbitMQ的五种模式和四种交换机

headers (头部交换机):根据消息的 headers 转发消息而不是根据 routeKey 来转发消息, 其中 header 是一个 Map,也就意味着不仅可以匹配字符串类型,也可以匹配其他类型数据。topic(主题交换机):根据一定的规则,根据 routeKey 把消息转发到符合规则的队列中,其中 # 用于匹配符合一个或者多个词(范围更广), * 用于匹配一个词。direct(直连交换机):将队列绑定到交换机,消息的 routeKey 需要与队列绑定的 routeKey 相同。

2024-12-24 22:40:24 651

原创 03 微服务之间的调用

在微服务架构中需要调用很多服务才能完成一项功能。这时候,如何互相调用就变成微服务架构中的一个关键问题。在这里我介绍三个常用的方法。

2024-12-23 21:27:49 791

原创 02 微服务的注册和发现

Eureka是Netflix OSS套件中关于服务注册和发现的解决方案。因为Spring Cloud 在它的微服务解决方案中对Eureka进行了集成,并作为优先推荐方案进行宣传,所以早期有用 Spring Cloud 来建设微服务系统的同学会比较熟悉。目前大量公司的微服务系统中依旧使用Eureka作为注册中心,它的核心设计思想也被后续大量注册中心产品借鉴。但目前Eureka 2.0已经停止维护,所以新的微服务架构设计中,不再建议使用。

2024-12-23 21:12:15 1594

原创 01-微服务的概念

对于单体架构来讲,我们只需要维护好这一个项目就可以了,但是对于微服务架构来讲,由于项目是由多个微服务构成的,每个模块出现问题都会造成整个项目运行出现异常,想要知道是哪个模块造成的问题往往是不容易的,因为我们无法一步一步通过debug的方式来跟踪,这就对运维人员提出了很高的要求。比如,用户微服务是要被订单微服务和电影微服务所调用的,一旦用户微服务的接口发生大的变动,那么所有依赖它的微服务都要做相应的调整,由于微服务可能非常多,那么调整接口所造成的成本将会明显提高。由于上述的垂直应用架构, 重复代码太多。

2024-12-23 20:59:29 251

原创 【JAVA】Graphics2D实现图片的裁剪、旋转、翻转

指以图片中心点(125,62.5)也就是图片中心,顺时针旋转5度。2、将原图中的点(dataX,dataY),点(dataX+cropWidth,dataY+cropHeight)形成的矩形, drawImage到区域A中。1、有一块长200宽100的画布,在画布的点(dx1,dy1),点(dx2,dy2)形成的矩形区域A。

2024-08-30 10:13:27 913 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除