自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 通用的规则匹配算法(原创)(java+.net)

1.java里可以使用Spring的 Spel或者Google的Aviator如果使用Aviator 则添加以下依赖 <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator<...

2019-07-26 13:36:00 1187

转载 redis缓存切面实现(支持缓存key的spel表达式)

1.定义注解package com.g2.order.server.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.la...

2019-07-03 12:40:00 483

转载 使用join和CountDownLatch来等待线程结束

1.join方法的实现join只能在start()之后调用, join 某个线程A,会使当前线程B进入等待,直到线程A结束生命周期(isAlive()==false) ,或者达到给定的时间. 在此期间内当前线程B处理Waiting(调用 wait()方法),而不是线程A. join方法本身只检测线程A的状态,而不影响线程A的执行.调用线程会等待子线程结束后再...

2019-05-27 10:20:00 234

转载 使用Unsafe来实现自定义锁

1.使用Unsafe类import sun.misc.Unsafe;class UnsafePackage { private static Unsafe unsafe; static { try { Class<Unsafe> unsafeClass = Unsafe.class; ...

2019-05-24 18:26:00 234

转载 rabbitMQ实现推迟队列

一. 使用原生Api1.RabbitMQ 相关 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>...

2019-05-23 18:09:00 114

转载 简单分布式锁的实现

1. 定义接口public interface RedisLock { String OK_CODE = "OK"; String OK_MULTI_CODE = "+OK"; /** * 加锁 * * @param lockKey 锁key * @param seconds 过期时间 ...

2019-04-29 20:09:00 105

转载 [原创]通过切面与分布式锁实现合并相同请求

在微服务里经常有并发相同的请求过来,当未命中缓存时,可能多条请求一起穿透缓存到DB,这就导致DB压力的增大本文使用redis的分布式锁来合并相同的请求当两个以上相同的请求来请求时, 通过竞争实现将相同的请求线性化.假设缓存失效,也只有1个线程去访问DB,其他线程在等待和重试 来降低缓存穿透的风险.代码如下1.添加依赖 <dependenc...

2019-04-19 19:20:00 155

转载 java无符号Byte

1.无符号byte, 实现了将byte(-128~127) 转换为 (0~255)class UnsignedByte { private short value; private byte rawValue; private UnsignedByte() { } public static UnsignedByte to...

2019-04-16 11:32:00 1455

转载 IP地址转换为Int

1.转换类import com.google.common.base.Strings;import java.security.InvalidParameterException;import java.util.Arrays;import java.util.regex.Pattern;import java.util.stream.Collectors;...

2019-04-16 11:29:00 235

转载 可配置的用户行为拦截原型

1.引用 aviator<dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator</artifactId> <version>4.1.2</ver...

2019-03-08 17:04:00 100

转载 CountDownLatch的简单实现

1.@Datapublic abstract class BaseLatch { private int limit; protected int running; BaseLatch(int limit) { this.limit = limit; running = limit; }...

2019-02-14 16:44:00 87

转载 jackson构建复杂Map的序列化

1.序列化复杂的Map时,可能需要下面的方式import com.fasterxml.jackson.databind.JavaType;import com.fasterxml.jackson.databind.ObjectMapper;import java.io.IOException;import java.lang.reflect.Type;import...

2019-01-21 18:02:00 328

转载 .NET熔断之Polly

1.Net Core 中有一个被.Net 基金会认可的库 Polly,可以用来简化熔断降级的处理。主要功能:重试(Retry);断路器(Circuit-breaker);超时检测(Timeout);缓存(Cache);降级(FallBack);官网:https://github.com/App-vNext/Polly介绍文章:https://www.cnblogs.com/C...

2019-01-17 18:09:00 199

转载 smtp自动发送邮件demo

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Net.Mail;using System.Text;namespace Test{ public static class...

2018-10-29 09:58:00 184

转载 java并行之parallelStream与CompletableFuture比较

1.import java.util.Arrays;import java.util.List;import java.util.concurrent.CompletableFuture;import java.util.concurrent.Future;import java.util.concurrent.TimeUnit;import static...

2018-10-12 09:56:00 364

转载 RSAUtils非对称加密

import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.util.encoders.Base64;import org.springframework.util.Base64Utils;import javax.crypto.BadPaddingException;...

2018-10-12 09:01:00 179

转载 计算日期之间的时间差

long daysDiff = ChronoUnit.DAYS.between(startDate, endDate);转载于:https://www.cnblogs.com/zhshlimi/p/9762785.html

2018-10-09 20:53:00 92

转载 面向注解的切面实现

1.package com.g2.order.server.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.a...

2018-09-26 09:54:00 174

转载 多个切面执行同一个方法

1.建立日志切面import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.springframework.context.annotation.Ena...

2018-09-20 15:40:00 1120

转载 spring切面拦截实现

1.建立业务类(英雄战斗实现类)package com.g2.api;public interface Weapon { int attack(); String getName();}package com.g2.api;import org.springframework.stereotype.Component;...

2018-09-19 18:41:00 131

转载 三种实现日志过滤器的方式 (过滤器 (Filter)、拦截器(Interceptors)和切面(Aspect))

1.建立RequestWrapper类import com.g2.order.server.utils.HttpHelper;import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStreamR...

2018-09-18 20:41:00 504

转载 redis实现 msetex和 getdel命令

1.redis本身不提供 msetex命令(批量增加key并设置过期时间)class RedisExtend { private static final Logger logger = LoggerFactory.getLogger(RedisExtend.class); private static final int Port = 6379; ...

2018-09-13 18:19:00 971

转载 mvn修改版本号命令

mvn -DnewVersion=1.0.0 -DgenerateBackupPoms=false versions:set转载于:https://www.cnblogs.com/zhshlimi/p/9394773.html

2018-07-31 11:07:00 432

转载 sql拼接列字符串

1.使用函数(sql2000以上)create FUNCTION dbo.fn_dictCodesConcatByType(@filter varchar(1000))RETURNS varchar(8000)ASBEGINDECLARE @v varchar(8000) select @v = isnull(@v + ',','')+code FROM d...

2018-07-31 10:56:00 121

转载 JVM 统计监测命令

参考深入理解JVM(七)——性能监控工具JVM性能调优监控工具专题一JVM调优总结 + jstat 分析1. 进入 jdk 目录cd /usr/local/jdk/bin2. 查询所有 java进程信息jps (推荐)jps -v 3.查询 java进程的启动时配置信息jinfo 进程Id4.统计当前进程gc...

2018-06-07 19:23:00 111

转载 mock static方法

<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> <version>1.6.5</versio...

2018-06-06 11:19:00 2592

转载 Spring Boot 例一 实现jsonp接口

1.新建项目(选择quikstart)2.增加spring boot 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifact...

2018-05-30 15:45:00 160

转载 安装Linux虚拟机到执行Java程序

1.安装VMware2.在VMware里安装 CentOs 镜像(CentOS-7.2-x86_64-DVD-1511.iso)3.启动CentOs后如果不能上网,或者 没有 ifconfig命令,那么 需要安装 net-tools工具等在虚拟机中以最小化方式安装centos7,后无法上网,因为centos7默认网卡未激活。而且在sbin目录中没有ifconfi...

2018-05-22 18:43:00 287

转载 Mock单元测试

/// <summary> /// 普通插入 /// </summary> [Fact] public void InsertOrder_Tests() { _sqlMapper.Setup(d => d.BeginTransaction(...

2018-05-22 17:02:00 66

转载 通用分页请求返回类

using System.Runtime.Serialization; /// <summary> /// 通用分页请求类 /// </summary> [DataContract] public class PagedListModelReq : Request { /// &...

2018-05-22 16:56:00 156

转载 Collectors.groupingBy分组后的排序问题

默认groupingBy代码里会生成一个HashMap(hashMap是无序的,put的顺序与get的顺序不一致)HashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方。所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟put的顺序不同(除非在put的时候key已经按照hashcode排序号...

2018-05-22 09:52:00 6036

转载 按权重分配任务

public class TaskAlloc { private Map<String, Integer> weight; public Map<String, Integer> getWeight() { return weight; } public Map<String, Int...

2018-05-15 19:32:00 668

转载 Java正则表达式-捕获组

private Set<String> getCodes(String s) { Set<String> resultSet = new HashSet<>(); Matcher matcher = codePattern.matcher(s); while (matcher.find(...

2018-05-11 09:41:00 66

转载 .Net支持Redis哨兵模式

csredis 博客csRedisgit地址csRedis3.2.1Nuget地址(在使用csredis3.2.1获取sentinel时产生运行时异常,调查问题最后发现是获取sentinel的s-down-time配置参数存在问题。在sentinel集群中并非每个sentinel都能获取到这个参数,获取不到就抛出异常了。)https://yq.aliyun.com/art...

2018-05-07 09:29:00 201

转载 Java类的初始化顺序

public class ClassInitOrderTest { public static void main(String[] args) { new B(); }}class T { T(int i, String flag) { System.out.println(flag + "调用T("...

2018-04-25 09:27:00 43

转载 自动判断文本文件编码来读取文本文件内容(.net版本和java版本)

.net版本using System;using System.IO;using System.Text;namespace G2.Common{ /// <summary> /// 用于取得一个文本文件的编码方式(Encoding)。 /// </summary> pub...

2018-04-04 09:25:00 129

转载 c# 实现无符号右移

/// <summary> /// 无符号右移, 相当于java里的 value>>>pos /// </summary> /// <param name="value"></param> /// <param name="pos">&...

2018-03-01 15:31:00 726

转载 2的指数次方算法对比

1. 算法选择: 1)使用Math.Power算法 2)按位左移 3)查询预生成字典private const int TenMillion = 10000 * 1000; private static Dictionary<int,int> Power2Dict=new Dictionary<int, i...

2018-02-26 15:05:00 576

转载 计算hashCode通用计算公式

1.java计算公式@Override public int hashCode() { //设置初始值 int result = 17; //假设有效域为: name,age,idCardNo,incomeAnnual,sex,brithDay int c = 0; //计算n...

2018-02-26 10:13:00 323

转载 C# 判断两个集合(List)是否相等

1.两个list如果有重复元素(如List1: a,b,a List2: b,b,a) 是无法通过包含关系来判断是否相等的.有两个办法,其一是两个List排序后再按顺序比较.另一个办法就是计算各元素的重复项再进行比较第一种方案劣势太明显,时间复杂度过大第二种以空间换时间,只需要遍历无需排序即可. /// <summary> ...

2018-02-05 18:31:00 3300

空空如也

空空如也

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

TA关注的人

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