- 博客(138)
- 资源 (1)
- 收藏
- 关注
原创 redis缓存击穿/穿透/雪崩面试回答
当然是有缺点的,布隆过滤器有可能会产生一定的误判,我们一般可以设置这个误判率,大概不会超过5%,其实这个误判是必然存在的,要不就得增加数组的长度,其实已经算是很划分了,5%以内的误判率一般的项目也能接受,不至于高并发下压倒数据库。缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端 DB 加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把 DB 压垮。我们当时使用的是redisson实现的布隆过滤器。
2023-10-24 06:00:00
629
1
原创 Java-RSA加解密工具类(包含分段加解密)
import kafka.log.Log;import lombok.extern.slf4j.Slf4j;import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher;import java.security.*;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import j
2022-05-04 09:02:34
1780
1
原创 java-ApplicationContextAware接口的作用
Aware接口的Bean在被初始之后,可以取得一些相对应的资源。Aware接口本身并不具备什么功能,一般是用于子类继承后,Spring上下文初始化bean的时候会对这个bean传入需要的资源。例如ApplicationContextAware接口,可以在Spring初始化实例 Bean的时候,可以通过这个接口将当前的Spring上下文传入。当一个类实现了这个接口(ApplicationContextAware)以后,这个类就能够方便得到ApplicationContext中的全部bean。换句话说,就
2022-03-25 09:00:36
1339
原创 java-单例模式双重检测和枚举实现
双重检测实现package com.designmodel.single;import java.util.concurrent.atomic.AtomicLong;/*** @description: 单例模式-双重检测* @fileName: DoubleLoad.java* @author: Sure* @createAt: 2022/3/21 16:46* @updateBy: Sure* @remark: */public class DoubleLoad { //
2022-03-24 11:10:47
307
原创 RestTemplate 添加请求池及相关设置
目前(4.2.6.RELEASE)的 RestTemplate 主要有四种 ClientHttpRequestFactory 的实现,它们分别是:基于 JDK HttpURLConnection 的 SimpleClientHttpRequestFactory基于 Apache HttpComponents Client 的 HttpComponentsClientHttpRequestFactory基于 OkHttp 2(OkHttp 最新版本为 3,有较大改动,包名有变动,不和老版本兼容)的 Ok
2022-03-21 11:33:15
931
原创 win10公司内网连接失败解决方案大全100%解决(非翻墙)
win10更新之后vpn突然连接不上了,折腾好几天终于搞好了~~~Win+R 快捷输入services.msc进入服务列表确定以下服务是否为开启状态,如果有关闭状态的点击开启并且启动方式改为自动:1.IPsec Policy Agent2.Routing and Remote Access3.IKE and AuthIP IPsec Keying Modules以上服务全部开启之后再次尝试重连(不需要重启),如果不行的话再进行下面修改注册表的操作:Win+R 快捷输入regedit进入注册表编辑
2022-02-16 10:33:40
9130
9
原创 java-通过反射实现比较两个对象不同的字段
import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.BeanUtils;import org.springframework.stereotype.Component;import org.springframework.util.CollectionUtils;import org.springframework.util.Obj
2022-02-14 07:30:00
959
原创 java-接口和抽象类
1. 抽象类和接口的语法特性抽象类不允许被实例化,只能被继承。它可以包含属性和方法。方法既可以包含代码实现,也可以不包含代码实现。不包含代码实现的方法叫作抽象方法。子类继承抽象类,必须实现抽象类中的所有抽象方法。接口不能包含属性,只能声明方法,方法不能包含代码实现。类实现接口的时候,必须实现接口中声明的所有方法。2. 抽象类和接口存在的意义抽象类是对成员变量和方法的抽象,是一种 is-a 关系,是为了解决代码复用问题。接口仅仅是对方法的抽象,是一种 has-a 关系,表示具有某一组行为特性,是为了解决
2022-01-07 09:47:56
374
原创 java-封装、继承、抽象、多态
关于封装特性封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式来访问内部信息或者数据。它需要编程语言提供权限访问控制语法来支持,例如 Java 中的 private、protected、public 关键字。封装特性存在的意义,一方面是保护数据不被随意修改,提高代码的可维护性;另一方面是仅暴露有限的必要接口,提高类的易用性。关于抽象特性封装主要讲如何隐藏信息、保护数据,那抽象就是讲如何隐藏方法的具体实现,让使用者只需要关心方法提供了哪些功能,不需要知道这些功能是如.
2022-01-07 09:24:52
199
原创 pgsql可重复执行insert脚本
do$$ begin if not exists( ) then insert into end if; end;$$;
2021-12-29 09:49:18
1009
原创 java-字符串转二维码图片返回base64
package com.msun.middle.aggregate.patient.server.comm.util;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.common.Bi
2021-12-24 23:19:13
632
原创 pgsql游标批量插入数据,id基于最大值自增
CREATE OR REPLACE FUNCTION bach_save_config(c_code text,c_name text,c_type text,c_value text,c_business_type_name text,c_memo text)RETURNS refcursor AS$BODY$declarec_org_id int8;orgid_list refcursor;c_id_plus int8 DEFAULT 1 ;isexist int8; BEGIN
2021-12-21 18:15:53
1122
原创 pgsql查询某个字母开头的数据
查询‘E’开头并且后八位都是数字的数据:select max(pat_card_no) from comm.pat_card where card_type_id=‘1’ and pat_card_no !~ ‘^E\d{8}$’
2021-12-14 15:09:03
3194
1
原创 pgsql查询不包含某个字母的数据
查询pat_card表中不包含‘E’的数据:select * from comm.pat_card where pat_card_no !~ ‘E’;
2021-12-14 15:08:17
4147
原创 pgsql查询包含某个字段的数据
–查询pat_card表中包含‘E’的数据select * from comm.pat_card where position(‘E’ in pat_card_no)>0
2021-12-14 14:48:06
4663
1
原创 java-自定义方法注解实现AOP面向切面编程
首先定义注解类import java.lang.annotation.*;/*** @description: 保存或者修改字典权限判断注解* @fileName: CommDictValidateAspect.java* @author: Sure* @createAt: 2021/12/13/013 16:14* @updateBy: Sure* @remark: */@Target({ElementType.METHOD})@Retention(RetentionPolicy.R
2021-12-14 11:17:09
2724
原创 sql秒备份表数据到另一个表
create table comm.user_20211112_pdasselect * from comm.user
2021-12-01 20:52:16
1194
1
原创 sql数据量较大时查询两表中不同的数据
当两个表数据量较大时,not in 和 not exist就不大适用了,很容易就查询超时了,我们可以换个思路,使用左连接进行查询:select * from a left join b on a,.id=b.id where b.** is null;
2021-11-30 18:37:00
1170
2
原创 java BigDecimal List求和
BigDecimal totalPrice=list.stream().map(DictRegisterClassVsChargeVO::getPriceFirst).reduce(BigDecimal.ZERO, BigDecimal::add);
2021-11-26 16:12:05
1653
原创 Java-判断两个list忽略顺序是否相等的最简单粗暴的方法
使用Apache Commons工具类List list1 = Arrays.asList(1, 2, 3);List list2 = Arrays.asList(3, 1, 2);System.out.println(CollectionUtils.isEqualCollection(list1, list2)); //true
2021-11-11 18:11:30
1470
1
原创 java-雪花算法生成唯一id
package com.sure.test.study;/*** @description: 雪花算法demo* @fileName: SnowflakeIdWorker.java* @author: Sure* @createAt: 2021/7/22/022 15:02* @updateBy: Sure* @remark: */public class SnowflakeIdWorker { /** 开始时间截 (这个用自己业务系统上线的时间) */ private f
2021-11-08 14:55:12
316
原创 java-cxf调用webservice
需要引入cxf依赖<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.2.7</version> </dependency>public stati
2021-11-05 14:34:44
640
2
原创 java-map遍历
//遍历mapfor (Map.Entry<String, Object> entry : holidayMap.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); }
2021-10-29 11:23:15
108
原创 java策略模式解决支付问题,消除if、else,代码可运行
策略模式解决支付问题1.业务场景二.解决方案三级目录1.业务场景支付方式有支付宝支付、微信支付、网银支付等等,如果在代码中通过不断的写if-elseif去实现的话,虽然看起来更直观,但实际上不利于后续的扩展和维护,后期如果由于业务需要使用混合支付的话,就需要改动if-elseif的逻辑,违反了开闭原则,代码如下:String payTypeCode = "WX";if ("WX".equals(payTypeCode)){ System.out.println("微信支付");}else
2021-10-25 09:32:33
1005
3
原创 软件设计师之关系代数运算
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-10-14 10:56:37
931
1
原创 linux查询端口号对应的服务名
步骤一:确定进程号[root@localhost ~]# netstat -antup|grep 端口号步骤二:通过进程号确定服务目录[root@localhost ~]# ll /proc/进程号/cwd[root@localhost ~]# pwdx 进程号#效果同上一个命令,更加快捷
2021-09-23 11:00:15
8054
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人