自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决redis缓存过期,大量请求轮流查询数据库并写入redis问题

上面代码表示的是查询最后5条数据,如果redis中存在的话就直接redis中读取,如果不存在的话就让一个线程去查询数据库并写入redis,高并发情况下,如果还没把数据写入redis中又来了请求,redis中找不到就会进入else中,这样就有很多线程都在等待拿到锁,其他线程因为拿不到锁所以等待,然后第一个线程查询完后把数据放到redis,接下来的线程就不用再去执行查询数据库并写入redis,直接走if从redis中读取。

2023-11-04 15:07:48 76 1

原创 工厂设计模式

接下来使用工厂模式,把Factory工厂类改为接口,写了一个用来创建手机的方法,AppleFactory表示专门生产苹果手机的工厂,HuaweiFactory表示专门生产华为手机的工厂,实现了Factory,这样子如果要新增新手机的话就不用去改代码了,只需要新建一个手机类去实现工厂接口就可以了,这就是可扩展性,能扩展绝不改代码。注意,苹果手机还是华为手机都要实现同一个手机接口Phone,因为Factory中的getPhone的返回值是Phone,这就是多态的思想。要加新手机就要在工厂里面加代码。

2023-11-02 14:12:37 27 1

原创 wait(),notify(),notifyAll()的使用

如果thread线程抢到锁,先输出“1”,然后调用锁的wait()方法,注意这里必须是调用锁的wait方法,就是object.wait(),注意一定要捕获异常不然报错,一旦调用了wait方法,thread线程进入等待,就会释放锁,object被释放了,然后线程thread2就会拿到object锁,开始执行,输出“2”,然后调用notifyAll()方法,表示唤醒所有以object为锁的线程,于是thread线程被唤醒执行输出“3”,notify()方法表示随机唤醒一个以object为锁的线程。

2023-10-29 12:36:57 36 1

原创 spring自动装配相关问题

Qualifier("")就是根据名字去找bean,按道理spring中有2个类型一样bean,而且也没有名字为s1的bean,但是上面代码不会报错,因为加了@Qualifier("")注解,如果不加默认用”s1“去spring找名字为”s1“的bean,但加了 @Qualifier("bean1"),表示去spring中找名字为”bean1“的bean,所以找到了就不报错了。那如果非要定义参数名字和bean名字不同的bean怎么办呢?可以在@Bean(”“)中加上你想要的名字,上面代码可以正常注入。

2023-10-25 20:40:58 29 1

原创 对list中的类按照指定规则进行排序

重写compareTo接口,这里的排序规则是按id从小到大排序,如果id一样就按score从大到小排序。类要实现Comparable<Student>接口,注意要规定泛型。

2023-10-20 12:50:38 39 1

原创 子类继承父类,相同属性问题

【代码】子类继承父类,相同属性问题。

2023-10-17 20:48:05 37 1

原创 java插入排序

【代码】java插入排序。

2023-10-07 13:11:20 24 1

原创 java冒泡排序

【代码】java冒泡排序。

2023-10-07 12:01:14 22 1

原创 java选择排序

i++) {j++) {minindex=j;min=s[j];=i){i++) {

2023-10-07 11:37:22 33 1

空空如也

空空如也

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

TA关注的人

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