- 博客(9)
- 收藏
- 关注
原创 Kafka与RocketMq比较
MQ全称 Message Queue,也就是消息队列,是应用程序之间的通信方法。业务异步解耦解耦微服务流量削峰消息分发分布式事务的数据一致性。关于RocketMQ与Kafka从架构设计,数据可靠性,性能对比,消息投递实时性,消费失败重试,严格的信息顺序,定时信息,消息事务,故障恢复,使用场景,十大方面进行比较。
2023-11-17 17:56:06 2063 1
原创 Java利用注解和AOP实现动态切换数据源(详解)
我们为什么要去实现多数据源配置?在一个项目中,我们可能访问的数据库资源并不止一个,可能是多个甚至更多,这个时候我们就需要去搭建多个数据源,进行动态的切换数据源进行一系列的增删改查操作。在QPS大的情况下,利用主从复制动态切换数据源,可以提高系统的稳定性和性能。我们应该如何优雅的通过Java代码实现动态切换数据呢?注解,AOP(面向切面编程)
2023-08-16 18:30:34 8854 1
原创 Java中拦截器与过滤器的区别
关于拦截器和过滤器的差异,可以从以下的五个方面描述,理解:实现原理,具体实现方式,触发时机,使用范围,使用场景;拦截器与过滤器的代码实现。
2023-08-11 17:30:04 8258 2
原创 Java中如何正确的使用Executor与线程池
虽然在Java语言中创建线程看上去就像创建一个对象一样简单,只需要new Thread()就可以了,但是实际上创建线程远不是像创建对象这么简单,创建对象,只需在JVM的堆中分配一块内存而已;而创建一个线程,却需要调用操作系统的内核的API,然后操作系统要为线程分配一系列资源,这个成本就很高了,所以线程是一个重量级的对象,应该避免频繁创建和销毁。那如何避免?对,就是使用线程池。
2023-08-09 10:33:58 6706 1
原创 LeetCode735. 行星碰撞
此题解题思路跟LeetCode.2390. 从字符串中移除星号_`不然的博客-CSDN博客思路大同小异。这里列举一下可能会出现的情况:情况一:行星数组一开始是负数: 再分两种情况: 继续是负数,不可能发生碰撞。 继续是正数,也不可能发生碰撞,但是之后,继续是出现负数就会发生碰撞(走情况二)。情况二:行星数组一开始是正数: 再分两种情况: 继续是正数,则不可能发生碰撞。 继续是负数,则必然发生碰撞。我可以通过一个队列,模仿行星的碰撞和不碰撞。
2023-08-07 17:14:16 658 1
原创 LeetCode.2390. 从字符串中移除星号
我们通过一个指针来确定当前的操作字符的位置,当遇到一个*号时,就把指针回退(类同与栈的弹出操作),然后再遇到不是*号时,就讲当前指针所在位置的值覆盖,遍历完一次后,(0,指针)的位置就是结果。1.我们应该可以想到通过栈来实现,将s字符串从头开始扫描,依次入栈,当遇见*号时,弹出两个字符,最后将栈中元素取出就是结果的逆序(因为栈是一个先进后出的原则)。2.那么为了避免从逆序,我们可以通过一个队列来实现,重复1中的操作,最后去元素时从队列头进行一个个取出,那么我们就可以得到正确的结果。
2023-08-05 18:44:16 1154 1
原创 Java8中新特性forEach怎么打断
在Java中对于for循环的使用,我们都知道可以通过break,continue来打断for循环。break:直接跳出for循环。continue:直接跳出本次循环,进入下一次循环。在Java8新特性中新增的forEach,是一种for循环的简写形式,可以使我们的代码变得更加简洁,有助于我们开发,相信很多小伙伴也经常用forEach去处理数据。那么问题来了,forEach怎么打断呢?
2023-08-05 11:47:46 10308 1
原创 LeetCode1657.确定两个字符串是否接近
LeetCode1657:我们试想之:如果word1和word2的字符串,在字符串长度,字符类型个数,字符类型都相等的情况下,word1和word2的字符出现的次数都能找到一个配对的存在,那么必然是可以转化得到的。关于字符串对于字符:个数的存储,我们肯定首先想到的是通过Map的键值对来存储,但是通过题意,字符串只有小写字母,那么我们可以通过int[26]来存储。对于1,2,3,4(1)都可以想到和快速的证明,但是(2)应该怎么快速证明呢?综上:我们对于4(2)的判断可以进行对字符对应的个数排序,依次比较;
2023-08-04 20:43:21 1418
原创 Java中ArrayList与LinkedList区别
ArrayList和LinkedList的区别(详解):(同理插入第一个元素,这里就不做描述了,如不懂的,再看一下上面的图)对于数组(即ArrayList),随机访问元素的时间复杂度为O(1),插入元素为O(n)。【圈重点啦】对于链表(即LinkedList),随机访问元素的时间复杂度为O(n);对于链表(即LinkedList),插入第一个元素和最后一个元素时,时间复杂度为O(1);当插入的是中间元素时也是O(n)。
2023-08-04 12:27:13 8142 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人