自定义博客皮肤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)
  • 收藏
  • 关注

转载 Redis Cluster 为什么选哈希槽不选一致性哈希?

在Redis集群中并没有使用一致性hash, 而是引入了哈希槽的概念,为什么选哈希槽不选一致性哈希?

2023-02-08 19:24:51 1435

原创 为什么当substring(int index)下标传参等于字符串长度时,不会报索引越界异常?

国外网站的问题字符串abcde的下标范围是从0到4,为什么substring(5)依然可以工作?该下标应该超出范围了呀。/* 01234 abcde */ String foo = "abcde"; System.out.println(foo.substring(0)); System.out.println(foo.substring(1)); System.out.println(foo.substring(2)); System.out.println(foo.substr

2022-05-16 17:05:14 427

原创 正确理解ThreadLocal以及简单应用

我们常说,synchronized采取的是“以时间换空间”的策略,本质上是对关键资源上锁,让大家排队操作。ThreadLocal则恰恰相反,采取的是“以空间换时间”的思路,为每个使用该变量的线程提供独立的变量副本,在本线程内部,它相当于一个“全局变量”,可以保证本线程任何时间操纵的都是同一个对象。看了一些理解ThreadLocal的文章,归纳了如下两点:一,ThreadLocal 不是用来解决共享对象的多线程访问问题的,主要是提供了避免参数传递的资源访问方式。每个线程都有一个自己的ThreadL

2022-03-08 15:59:24 454

原创 多线程的经典案例(卖票)

前两天在站内看到几个多线程卖票的案例,发现代码都不怎么对,运行结果也不符合预期,不能有效复现多线程并发的场景。故而自己写了一套,过程中也产生了一些新的思考,在此梳理一下。先贴代码,假设现在电影院有100张票,3个窗口同时售卖。public class NewTask implements Runnable { public int num = 100; @Override public void run() { while(num > 0) {

2022-03-07 11:39:22 1593

原创 DDD的简单落地及防腐层(ACL)

领域驱动设计是一种由领域模型来驱动系统设计的思想,不是通过数据库表来驱动系统设计。领域模型是对业务模型的抽象,DDD革命性在于:领域模型准确反映了业务语言,传统数据对象除了简单setter/getter方法外,没有任何业务方法,即失血模型,而DDD领域采用充血模型(业务方法定义在实体对象中,例如:生成订单时,判断商品不能为空)。

2022-03-03 15:53:37 6078

转载 java.lang.NoSuchMethodError的通用解决思路

NoSuchMethodError中文意思是没有找到方法,这个错误并不是说依赖的jar包、方法不存在,ClassNotFoundException才是上述错误,即便出现ClassNotFoundException也不一定全是缺少依赖的jar包、class,有可能是依赖的冲突(引用了多次报错Class的jar)  同样道理,NoSuchMethodError经常是因为报错的方法所在的jar包产生了冲突。  明白了为什么会出现这个错误后,我们关键说下 Maven项目出现这个问题了怎么解决...

2021-10-11 17:29:50 7608

原创 left join、right join和join的区别

一张图解图,如下:部分同学看后可能有类似思考,在真实的表查询当中,哪部分数据属于图中示意的交集?我是这么理解的,把查询SQL的ON后规定的 A.Key=B.Key ,想象为两表的主键和外键,是不是就一目了然了呢(#^.^#)但要理解图中的含义,最终还是要自己动手去玩一下的,思否一篇文章的案例非常棒,下面引用展示:首先,建两张表,第一张表名为A,第二张表名为B一、left join顾名思义“左连接”,表A左连接表B,表示以左边的表A为主,关联查询表B的数据。查出来的结果将会显示左表.

2021-09-29 16:07:40 5392

原创 expected at least 1 bean which qualifies as autowire candidate for this dependency.

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.beyondsoft.ruivision.common.api.platform.bandbinding.BandBindingFeignService’ available: expected at least 1 bean which qualifies as autowire candid

2021-06-11 22:13:28 3419

原创 @Qualifier解决NoUniqueBeanDefinitionException依赖注入的异常

1.痛点使用 @Autowired 注解是 Spring 依赖注入的绝好方法。如果容器中有多个相同类型Bean,将抛出NoUniqueBeanDefinitionException,以提示有多个满足条件的Bean,无法正确做出判断使用哪一个@Component("Sun")public class Sun implements Student { public String printName() { return "Sun"; }}@Component("Lee")p

2021-04-23 01:06:10 565

原创 线程同步工具类CountDownLatch

countDownLatch 理解应用仅用作开发过程中的笔记和整理,本文文章段落摘自不同文章,如侵删谢谢。1.背景countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。存在于java.util.cucurrent包下。2.概念countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量

2021-03-15 23:51:00 201

空空如也

空空如也

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

TA关注的人

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