4 严的博客

尚未进行身份认证

我要认证

想好好提升技术

等级
TA的排名 1w+

均匀推送数量逻辑

在开发中,经常遇到要均匀展示在一段时间内的数目变化,例如2分钟内活跃人数,得均匀递增展示出来。这时需要后台在指定时间内均匀的将数量推送给前端显示;@Slf4jpublic class Task { public static void main(String[] args) { pushLoginCount("活跃人数",10,60,10); } /** * 比如均匀推送登入人数 * @param type 推送的服务类型 *

2020-06-22 14:19:49

红包算法

规则:所有人抢到金额之和等于红包金额,不能超过,也不能少于每个人至少抢到一分钱要保证所有人抢到金额的几率相等文章目录一、二倍均值法二、线段分割法三、红包面试题一、二倍均值法剩余红包金额M,剩余人数N,那么:每次抢到金额=随机(0,M/N2)保证了每次随机金额的平均值是公平的假设10人,红包金额100元第一人:100/102=20,随机范围(0,20),平均可以抢到10元第二人:90/92=20,随机范围(0,20),平均可以抢到10元第三人:80/82=20,随机范围(0,20),

2020-06-16 11:25:43

MongoTemplate 全面的 增删改查及复杂查询操作

这是借鉴其他博客非常全面的一张表:附带Criteria方法:文章目录1、查询1、查询书写格式一: //统计数量 public Integer count(Bean domin) { Query query = getCondition(domin); return (int)template.count(query, Bean.class, Bean.COLLECTION); } //查找列表 public List<Bean>

2020-06-12 13:51:33

非常全面的lambda表达式对List集合去重、分组、排序、过滤、求和、最值方法工具类

我们经常会对list集合去重,于是我自己花了点时间将如何用 lambda表达式对list集合去重做了封装和测试,方便以后快速使用。包括对对象集合中的某个属性去重等。如果有特殊的list去重要求,可以自行对下列方法进行修改。下列方法是本人验证过比较简便的写法,请参考:import java.util.*;import java.util.concurrent.ConcurrentHashMap;import java.util.function.Function;import java.util.f

2020-06-05 14:15:00

定义切面注解的方式来记录操作日志信息

在日常开发中,我们经常需要记录一些操作日志;如果每个在方法里面写API,会比较麻烦;故我们可以定义切面,来进行处理日志的记录;简化开发;下面的案例是自定义注解来记入日志;可以根据自己的需求来改变自己的切面实现和连接点,下面只是提供一个案例参考。一、注解SaveLog@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface SaveLog { String o

2020-05-29 16:28:51

多节点部署执行定时任务选举单一节点解决方案---redis

当服务部署在多个节点上时,定时任务会在每个节点上定时执行,这样是不合理的;因为我们只需要一个节点能够执行定时任务就行!解决方案:使用redis的setnx一、SpringBoot声明连接redis数据源其他博客中以及写过怎么配置redis,这里不做过多重复!1、RedisLock定义keyimport lombok.AllArgsConstructor;import lombok.Ge...

2020-04-23 15:39:56

A调用B方法,@Transactional事务失效情况

本人做了各种情况的测试,结果如下:总结:方法A调用方法B:1、如果只有A加@Transactional注解;则AB在同一事务中;2、如果只有B加@Transactional注解;AB方法为同一类,事务失效;AB不同类,只有B有事务;原理:spring 在扫描bean的时候会扫描方法上是否包含@Transactional注解,如果包含,spring会为这个bean动态地生成一个子类(即...

2020-04-22 17:06:30

Mysql sql语句基本常规操作!

文章目录一、数据定义语言基础DDL(Data Definition Language)(一)alter一、数据定义语言基础DDL(Data Definition Language)(一)alter字段修改1)添加字段语法:alter table 表名 add 字段名 类型alter table corp add platform_id BIGINT(20) DEFAULT NULL...

2020-04-17 10:27:00

JAVA设计模式之责任链模式

文章目录一、责任链(Chain of Responsibility)模式二、责任链模式的结构三、源码四、纯的与不纯的责任链模式五、总结一、责任链(Chain of Responsibility)模式顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行...

2020-04-13 10:42:10

DateUtils时间工具类

package com.boss.tools.utils;import org.apache.commons.lang3.StringUtils;import javax.validation.constraints.Null;import java.text.DateFormat;import java.text.ParseException;import java.text.Si...

2020-04-08 14:20:17

SpringBoot解决跨域问题和Spring解决跨域问题

文章目录一、Springboot解决跨域问题二、Spring解决跨域问题一、Springboot解决跨域问题添加配置类:import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;impor...

2020-04-08 09:51:28

HttpUtils开发工具类模版

文章目录一、HttpClient二、okHttp一、HttpClient依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> ...

2020-04-07 13:57:21

SpringBoot+mybatis连接多数据库配置模版

操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑。在SpringBoot中也可以实现多数据源并配合Mybatis框架编写xml文件来执行SQL。在SpringBoot中,配置多数据源的方式十分便捷。文章目录一、pom依赖配置二、application.yml 配置三、Java config配置一、pom依赖配置<depende...

2020-03-30 16:01:04

SpringBoot声明连接多个redis数据源配置模版

在实际开发中,我们可能会用到2个不同的redis数据源;如何连接查询详情:文章目录一、依赖二、配置文件三、config类配置四、序列化问题一、依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&gt...

2020-03-30 13:44:18

Arrays.asList将数组转换成集合,不可进行add和remove操作的原因

问题:Arrays.asList将数组转换成集合,不可进行add,addAll和remove操作: public static void main(String[] args) { List<String> strings = Arrays.asList("dddd", "dsad", "dsawe", "11111"); strings.ad...

2020-03-19 13:33:21

JAVA设计模式之模版模式

文章目录一、 模板设计模式在书中定义:二、 模板模式的类图:三、 实例说明四、 优点五、不足六、使用场景一、 模板设计模式在书中定义:定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构但可重定义该算法的某些特定步骤。通俗点的理解就是 :完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按...

2020-03-16 17:20:43

JAVA设计模式之策略模式

文章目录一、什么是策略模式二、具体案例三、问题和优化四、策略模式的应用一、什么是策略模式1、定义:策略模式(StrategyPattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。是一种对象行为型模式。打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。在打个比方,我们购物下单需要支付...

2020-03-12 11:25:40

十大排序算法专题 java实现:冒泡、选择、插入、希尔、归并、快速、堆排序、计数、桶、基数

文章目录1、冒泡排序(Bubble Sort)2、选择排序(Selection Sort)3、插入排序(Insertion Sort)1、冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会...

2020-03-02 15:24:17

JVM专题二:GC算法和收集器

文章目录一、如何判断对象可以被回收(一)引用计数法(二)可达性分析算法(三)如何判断一个常量是废弃常量(四)如何判断一个类是无用的类二、垃圾回收算法(一)标记-清除算法(二)复制算法(三)标记-整理算法(四)分代算法三、垃圾收集器一、如何判断对象可以被回收堆中几乎放着所有的对象实例,对堆垃圾回收前的第一步就是要判断哪些对象已经死亡(即不能再被任何途径使用的对象)(一)引用计数法给对象添加一...

2020-02-29 22:09:38

spring boot 特性一:自动配置原理分析

Spring Boot中引入了自动配置,让开发者利用起来更加的简便、快捷,本篇分析下Spring Boot中的自动配置原理。注解结构:文章目录一、启动类:二、@SpringBootApplication注解三、@EnableAutoConfiguration一、启动类:二、@SpringBootApplication注解进入@SpringBootApplication的注解类,会发现...

2020-02-16 17:49:54

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取