- 博客(152)
- 收藏
- 关注
原创 maven进阶学习
1.依赖传递标签: 标签可选值: compile/test/provided/system/runtime/importimport: 需要继承来导入的jar吧,使用import。但是type必须是pom自定义插件1.新建项目2.注解实现3. setting.xml 修改4.maven 引用5.执行 validate 生命周期 后的结果补充根据引用分别使用不同的实现方式资源过滤...
2022-03-17 13:35:30
268
原创 常用的10中算法
二分查找[ 非递归 ]/** * 二分查找非递归实现 * * @author qb * @version 1.0 * @since 2022/3/7 11:30 */public class BinarySearchNoRecur { public static void main(String[] args) { int[] arr = {1,3,8,10,11,67,100}; int i = binarySearch(arr, 100);
2022-03-17 13:35:15
462
原创 算法之查找算法
线性查找/** * 线性查找 * * @author qb * @version 1.0 * @since 2022/2/24 15:57 */public class SeqSearch { public static void main(String[] args) { int[] arr = {1,9,11,-1,34,89}; int result = seqSearch(arr, 88); System.out.pri.
2022-03-17 13:35:01
110
原创 排序算法之8种排序
排序算法8种排序内部排序:插入排序:直接插入排序、希尔排序选择排序:简单选择排序、堆排序交换排序:冒泡排序、快速排序归并排序基数排序外部排序:冒泡排序/** * 冒泡排序 * @author qb * @version 1.0 * @since 2022/2/23 13:55 */public class BubbleSort { public static void main(String[] args) { int[] array
2022-03-17 13:34:26
600
原创 非线性数据结构之图
图的深度优化遍历package com.example.dataalgorithm.grap;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 图 * @author qb * @version 1.0 * @date 2022/3/6 15:28 */public class Graph { /** * 存储顶点集合 */ pri...
2022-03-17 13:34:11
128
原创 非线性数据结构之平衡二叉树(AVL)
左旋、右旋、双旋package com.example.dataalgorithm.tree.avl;/** * @author qb * @version 1.0 * @date 2022/3/5 15:06 */public class AvlTreeDemo { public static void main(String[] args) {// int[] arr ={4,3,6,5,7,8}; //左旋转// int[] arr ={...
2022-03-17 13:33:37
150
原创 非线性数据结构之二叉排序树【 BST 】
package com.example.dataalgorithm.tree.binarySortTree;/** * 二叉排序树 * * @author qb * @version 1.0 * @since 2022/3/4 17:11 */public class BinarySortTreeDome { public static void main(String[] args) { int[] arr = {7,3,10,12,5,1,9,2}; ..
2022-03-17 13:33:09
61
原创 赫夫曼编码[ 无损压缩 ]
赫夫曼编码及解码package com.example.dataalgorithm.tree;import org.jetbrains.annotations.NotNull;import java.util.*;/** * 哈夫曼编码 * * @author qb * @version 1.0 * @since 2022/3/3 14:50 */public class huffmanCode { public static void main(String[] a.
2022-03-16 16:01:00
308
原创 非线性数据结构之赫夫曼树
基本介绍特点{13,7,8,3,29,6,1} 的赫夫曼树为:案例package com.example.dataalgorithm.tree.huggmantree;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * 哈夫曼树 * * @author qb * @version 1.0 * @since 2022/3/3 10:50 */public
2022-03-16 15:58:57
378
原创 非线性数据结构之顺序储存二叉树及线索化二叉树
顺序储存二叉树特点顺序二叉树通常只考虑完全二叉树第n个元素的左节点为 2 * n + 1第n个元素的右节点为 2 * n + 2第n个元素的父节点为 (n-1) /2案例package com.example.dataalgorithm.tree;/** * @author qb * @version 1.0 * @since 2022/3/2 14:42 */public class ArrBinaryTreeDemo { public static void m
2022-03-16 15:55:50
498
原创 非线性数据结构之二叉树
为什么需要这种数据结构数组存储方式的分析优点:通过下标的方式访问元素,速度快,对于有序数组,还可以使用二分查找提高检索速度缺点:如果要检索的具体某个值,或者插入值(按一定顺序)会整体移动,效率较低链式存储方式分析优点:在一定程度上对数组存储方式有优化 比如插入一个数值节点,只需要将插入的节点,链接到链表中节课,删除效率也很好缺点:在进行检索时,效率仍然较低,比如检索某个值,需要从头节点开始遍历前序、中序、后序遍历package com.example.dataalgor
2022-03-16 15:52:37
911
原创 线性数据结构之递归
简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁递归场景实例/** * 迷宫 * * @author qb * @version 1.0 * @since 2022/2/22 15:50 */public class MiGong { public static void main(String[] args) { //先创建一个二维数组 模拟迷宫 //地图
2022-03-16 15:49:47
229
原创 线性数据结构之哈希表
散列表(hash table,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构,也就是说,他通过关键码值映射到表中一个位置来访问记录,一加快查找速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表package com.example.dataalgorithm.recursion;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import
2022-03-16 15:47:49
271
原创 线性数据结构之栈
子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程序执行完后在将地址去除,以回到原来的程序中处理递归调用: 和子程序的调用类似,只是出了存储下一个指令的地址外,也将参数,区域变量的数据存入堆栈中表达式的转换[ 中缀表达式转后缀表达式 ] 与求值(实际解决)二叉树的遍历图形的深度优化(depth - first)数组模拟栈package com.example.dataSructure.stack;import java.util.Scanner;/** * .
2022-03-16 15:46:33
621
原创 二、数据结构介绍及线性数据结构之链表
单项链表package com.example.dataSructure;import lombok.Data;/** * @author qubing * @Description: * @date 2022/2/14 13:44 */public class SingleLinkedListTest { public static void main(String[] args) { HeroNode heroNode1 = new HeroNode(1,
2022-03-16 15:41:45
717
原创 二、线性数据结构之稀疏(sparsearray)数组
概述当数组中大部分元素为0,或者为用一个值的数组时,可以使用洗漱数组来保存该数组。稀疏数组的处理方法:记录数组一共几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模案例转换方式package com.example.dataSructure;import lombok.extern.slf4j.Slf4j;/** * 稀疏数组 ---五子棋 * @author qubing * @date 2022/2/14 10:44
2022-03-16 15:39:03
119
原创 shardingJdbc 的 actual-data-nodes节点扩展
配置类package com.shardingjdbc.shardingjdbcstu.config;import lombok.AllArgsConstructor;import org.apache.shardingsphere.core.yaml.config.sharding.YamlTableRuleConfiguration;import org.apache.shardingsphere.shardingjdbc.spring.boot.sharding.SpringBootShar
2022-03-11 17:02:59
8711
1
原创 BlockingQueue使用实例
ArrayBlockingQueue阻塞队列 FIFO 先进先出 public static void main(String[] args) throws InterruptedException {// test1(); test4(); } //有返回值 抛出异常 public static void test1(){ //队列大小 ArrayBlockingQueue blockingQueue
2022-01-26 17:57:17
349
原创 Callable实例
public class TestController { public static void main(String[] args) throws ExecutionException, InterruptedException { FutureTask<String> stringFutureTask = new FutureTask<>(new MyThread()); //两个线程去执行 Callable只会打印一次,因为缓存提高
2022-01-26 17:54:34
323
原创 CountDownLatch、CyclicBarrier、Semaphore
CountDownLatch同步减法计数器 public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(6); for (int i = 0; i < 6; i++) { new Thread(()->{ System.
2022-01-26 17:53:24
91
原创 synchronized 的虚假唤醒
问题出现原因if(num == 0){ //此处会出现【虚假唤醒】 this.wait()}解决 while(num == 0){ this.wait() }原因:拿两个加法线程A、B来说,比如A先执行,执行时调用了wait方法,那它会等待,此时会释放锁,那么线程B获得锁并且也会执行wait方法,两个加线程一起等待被唤醒。此时减线程中的某一个线程执行完毕并且唤醒了这俩加线程,那么这俩加线程不会一起执行,其中A获取了锁并且加1,执行完毕之后B再执行。如果是if的话,那
2022-01-26 17:50:05
281
原创 CopyOnWriteArrayList
ArrayList 的线程安全问题ArrayList 在并发线程的情况下,不是线程安全的,会报java.util.ConcurrentModificationException 并发修改异常。解决1.Vector(Vector jdk1.0出现的,arraylist是1.2出现的) 它主要是在add的时候加了synchronized2.Collections.synchronizedList 使用juc的Collections.synchronizedList3.CopyOnWriteArrayL
2022-01-26 17:41:22
99
原创 ThreadPoolExecutor参数说明
[ ThreadPoolExecutor的七大参数 ]int corePoolSize: 核心线程池大小int maximumPoolSize: 最大的线程池大小long keepAliveTime: 存活的时间 [ 超时了没有人使用,就释放 ]TimeUnit unit:存活的单位BlockingQueue< Runnable > workQueue:阻塞队列ThreadFactory threadFactory:线程工厂–创建线程的 一般不用动RejectedExecutio
2022-01-26 17:37:16
373
原创 CompletionService应用
public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService service = Executors.newFixedThreadPool(5); CompletionService<Integer> cs = new ExecutorCompletionService<>(service); ...
2022-01-26 17:29:39
251
原创 CompletableFuture补充
异常感知及任务完成感知 [ 返回最终结果 ] public static void main(String[] args) throws ExecutionException, InterruptedException { ExecutorService service = Executors.newFixedThreadPool(5); CompletableFuture<Integer> future = CompletableFuture.supp
2022-01-26 17:28:27
270
原创 Disruptor笔记
更详细的文章: Disruptor详解Disruptor核心概念Disruptor:本质是无锁并发框架,用了很多的CAS来解决多线程抢夺问题,是在内存中处理。RingBuffer(环形缓冲区): 基于数组的内存级别缓存,是创建sequence(序号)与定义WaitStrategy(拒绝策略)的入口Disruptor(总体执行入口):对于RingBuffer的封装,持有RingBuffer、消费者线程池Executor、消费之集合ConsumerRepository等引用Sequence(序号.
2022-01-25 16:36:01
368
原创 获取几个工作日后的日期
/** * 中国法定节假日期 */ public static final String IS_HOLIDAY = "01-01,01-02,01-03,02-09,02-10,02-11,02-12,02-13,02-14," + "02-15,04-04,04-05,04-06,04-29,04-30,05-01,06-10,06-11," + "06-12,09-...
2021-12-31 09:46:18
617
转载 rabbitMq学习
手动应答channel.basicAck(deliverTag,true);//true 为批量应答需要开始multiple,手动应答模式对列的吃持久化 /* * 如果队列不存在,则会创建 * Rabbitmq不允许创建两个相同的队列名称,否则会报错。 * * @params1: queue 队列的名称 * @params2: durable 队列是否持久
2021-12-13 22:11:50
359
原创 mysql 基本函数、循环、跳出循环、游标使用
SQL99语法新特性NATURAL JOIN (自然连接) : 她会帮你自动查询两张表中所有相同的字段,然后进行等值连接select a.dept_id,b.dept_id from A a NATURAL JOIN B bUSING : 两张表中字段一样(dept_id) 才能使用select a.dept_id,b.dept_id form A a join A b USING(dept_id)基本函数循环使用储存过程(procedure)进行演示repeat 循环
2021-12-12 21:01:42
6307
1
原创 spring Aop基础知识
springAop个人理解:aop的实现机制是通过BeanPostProcessor 机制,本质是利用了jdk或者cglib动态代理,spring中如果有接口会默认使用jdk动态代理,没有便会默认使用cglib,也可以强制使用cglib,在ioc中bean实例化时,会先创建一个普通对象,在三级缓存中存储了getEarlyBeanReference 表达式函数,里面循环了BeanPostProcessor,此时如果使用了Aop的代理机制,便会返回一个新的对象覆盖原始对象一、概述springAop 中可以
2021-12-12 17:04:36
349
原创 headerMapRequestWrapper 前置请求拦截修改实例
定义HeaderMapRequestWrapperpackage com.ruoyi.framework.security;import java.util.Collections;import java.util.Enumeration;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.s
2021-12-11 23:01:46
1353
原创 Spring ioc基本流程及循环依赖
bean的声明周期beanDefintionReader: 配置读取BeanDefintionBean: 配置的解析beanFactorypostProcessor: bean的扩展方法(实例化前执行,操作元数据)…(此期间便是实例化过程)populateBean: 填充Bean的属性aware:执行实现了此接口的方法Beanpostprocessor:before:bean的前置增强int method: 初始化里面的方法BeanPostProce
2021-12-11 22:00:39
424
原创 mysql 储存过程 实例
CREATE DEFINER=`inspect-v2-develop`@`%` PROCEDURE `updateTypeLabel`() COMMENT '数据迁移,储存过程'BEGIN DECLARE s INT DEFAULT 0; DECLARE mealId VARCHAR(64); DECLARE num INT DEFAULT 0; DECLARE list CURSOR FOR SELECT deploy_meal_id,COUNT(deploy_meal_id).
2021-12-10 18:26:42
553
原创 redis executePipelined管道实例
//[ 批量处理redis中的排班和号源 ] RedisTemplate<Serializable, Object> redisTemplateByDb = redisUtil .getRedisTemplateByDb(10); RedisSerializer keySerializer = redisTemplateByDb.getKeySerializer(); //[ 流水线操作.
2021-12-01 13:36:38
2346
原创 redis动态切换db
package com.shunnengnet.inspect.common.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.context.annotat
2021-11-18 16:07:47
876
原创 redis lua脚本使用实例
import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;import o
2021-10-18 08:49:06
302
原创 根据当前时间获取几天后或下个月的日期(多退少补/工作日)及其他日期处理方法
项目中遇到的,做个记录,具体业务是:体检号源累计增加,例如:2021-08-17哪下一个月的2021-09-17判断是否增加号源添加的号源必须在工作日内,所以就出来了很多细节问题,例如:如果当前日期在下个月没有怎么办?如果当前最后一天是30号或者28号,可以下个月有30号/31号那该怎么办?如果最后一天是31号下个月是28号/30号怎么办?如果当前日期或者下个月多的的日期不是工作日怎么办结合问题,所以就慢慢的实现了,就是做个笔记,有些代码细节自行修改项目中是定时任务quartz,实.
2021-08-17 18:45:57
658
原创 java根据路径将图片转base64
/** * 根据图片路径转换成base64 * @param imageUrl * @return */ public static String getBase64(String imageUrl) { InputStream in = null; final ByteArrayOutputStream data = new ByteArrayOutputStream(); //读取图片字节数组 ...
2021-07-19 13:37:29
1733
原创 敏感词过滤
/** * 最小匹配规则 */ private static final int MIN_MATCH_TYPE = 1; /** * 最大匹配规则 */ private static final int MAX_MATCH_TYPE = 2; private static Map<String,String> sensitiveWordMap; public static void main(String[...
2021-06-24 11:46:11
133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅