- 博客(55)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 idea springboot 启动报错 Connected to the target VM, address: ‘127.0.0.1:6866‘, transport: ‘socket‘
参考link https://blog.csdn.net/qq_38617531/article/details/103199349。没有引入springboot 启动依赖导致的。
2024-03-25 22:24:30 263 1
原创 JAVA 正则 反斜杠匹配
Java匹配反斜杠java中用四个\\ 代表一个匹配的反斜杠 System.out.println("\\\\"); Matcher matcher = Pattern.compile("\\\\").matcher("aa\\bb\\cc\\dd"); int i =1; while (i<2){ boolean b = matcher.find(); i++; }
2021-11-25 15:29:29 966
原创 面试问题-1
传球算法问题有A,B,C,D,E 五个人,互相传球,传递5次,A最先开始,最后传递给A的情况有多少种解答:个人思考的是树去解决问题,但是后台说如果次数越来越多 如何优化没有对策2. HashMap的多线造成CPU100%的情况问题HashMap不安全导致的循环引用的问题Zookeeper如何实现投票功能做一个高可用的redis,如一个redis在东北,一个在广州,优先访问广州的redis,如果广州redis宕机,或者网络出现问题,可以转移到东北的redis,你有什么方案可以使用多个.
2021-06-27 18:53:16 206
转载 redis多Master分布式缓存
Redis Cluster一.Redis Cluster的架构多个master node,每个master node 都可以挂载多个slave node。读写分离的架构,对应每个master node来说,写就写到master node,读就从master node对应的slave node去读。高可用。每个master node都有多个 slave node,如果master node挂了,redis cluster机制就会自动将某个slave node切换成 master node。二.数
2021-06-27 14:43:41 939
转载 Innodb事务隔离级别和锁
事务的隔离级别隔离级别脏读不可重复读幻读未提交读(Read uncommitted)可能可能可能已提交读(Read committed)不可能可能可能可重复读(Repeatable read))不可能不可能可能可串行化(Serializable )不可能不可能不可能未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据提交读(Read Committed):只能读取到已经提交的数据。
2021-06-16 16:07:36 222
原创 算法-前缀和+Map表思想
前缀和非常精巧的用key作为一个可重复出现的条件,value为最早出现这个条件值的下标例题 * 给你一个整数数组 nums 和一个整数k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组: * * 子数组大小 至少为 2 ,且 * 子数组元素总和为 k 的倍数。 * 如果存在,返回 true ;否则,返回 false 。 * * 如果存在一个整数 n ,令整数 x 符合 x = n * k ,则称 x 是 k 的一个倍数。 * * 输入:nums = [23,2,4,6,7
2021-06-03 18:00:15 288
原创 设计模式-JDK动态代理和cglib动态代理
动态代理和静态代理区别静态代理在编译时就已经实现,编译完成后代理类是一个实际的class文件动态代理是在运行时动态生成的,即编译完成后没有实际的class文件,而是在运行时动态生成类字节码,并加载到JVM中JDK动态代理此处采用火车票的例子,动态代理对象实际代理的是zhixing火车票,就是实际是帮智行卖火车票,则代理对象持有被代理对象的引用,这里有智行和飞猪两家售票点,代理对象可以任意切换代理的对象,非常方便,无需再创建单独的代理对象,但是他们都需要实现相同的接口就是railwaysBurea
2021-06-01 10:02:49 186
原创 算法-进制,常见规律
各种进制代表的符号二进制:0dXXXX八进制:0XXXX十六进制:0xXXXX例子二进制0d10101010八进制0X252十六进制0xaa常见知识4^x % 3 == 1如果一个数n是2的x次幂 那么 n&(n-1)==0
2021-05-31 11:29:33 197
原创 算法-有关2的次幂问题
如何判断一个数是2的次幂可以巧妙的使用位运算思路12的n次幂转换为二进制码如 2为 10 4为 100 8为 1000可以观察出来 所有的位上只有一个1 则可以使用移位运算 算出 有多少个1即可 int count = 0; if(n>0){ for(int i=0;i<31;i++){ count += n & 1; n >>= 1;
2021-05-30 11:08:20 478
原创 设计模式-代理模式
代理模式定义代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。优点1.代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;2.代理对象可以扩展目标对象的功能;3.代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性(方法增强)缺点1.代理模式会造成系统设计中类的数量增加2.在客户端和目标对象之间增加一个代理对象,会造成
2021-05-28 15:33:21 82
原创 LeetCode-477-汉明距离总和
汉明距离指的是两个数不同位数的总和如00110101则汉明距离为20000111111汉明距离为4汉明距离总和计算一个数组中,任意两个数之间汉明距离的总和。输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 +
2021-05-28 08:46:06 139
原创 maven 多模块循环依赖问题
如果你发现你的模块之前并没有循环依赖的情况,那么可能是idea的问题 可以删除项目根目录下的.idea文件,重新导入项目,重新生成.idea文件夹即可解决
2021-05-27 14:56:51 583
原创 算法-leetcode-1190-反转每对括号间的子串
/**给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。输入:s = “(abcd)”输出:“dcba”输入:s = “(u(love)i)”输出:“iloveu”输入:s = “a(bcdefghijkl(mno)p)q”输出:“apmnolkjihgfedcbq”*/public class dayB {/** * 使用栈 即可解决这个问题 关键点
2021-05-27 00:28:35 151
原创 设计模式-建造者模式
建造者模式定义指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。优点1.封装性好,构建和表示分离。2.扩展性好,各个具体的建造者相互独立,有利于系统的解耦。3.客户端不必知道产品内部组成的细节,建造者可以对创建过程逐步细化,而不对其它模块产生任何影响,便于控制细节风险。缺点1.产品的组成部
2021-05-26 17:41:11 178 1
原创 设计模式-抽象工厂
抽象工厂抽象工厂模式(Abstract Factory)是一个比较复杂的创建型模式。抽象工厂模式和工厂方法不太一样,它要解决的问题比较复杂,不但工厂是抽象的,产品是抽象的,而且有多个产品需要创建,因此,这个抽象工厂会对应到多个实际工厂,每个实际工厂负责创建多个实际产品抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生
2021-05-25 23:47:11 199
原创 设计模式-工厂方法模式
工厂方法模式“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。(不仅仅对产品进行抽象,对工厂也进行抽象)优点:1.用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。2.灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。3.典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。缺点:1.类的个数容易过多,增加复杂度2.增加了系统的抽象
2021-05-25 23:01:40 78
原创 设计模式-简单工厂(静态工厂方法)
简单工厂模式定义 在简单工厂模式中创建实例的方法通常为静态(static)方法,因此简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory Method Pattern)简单工厂模式每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度,违背了“开闭原则”。工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。优点1.工厂类包含必要的逻辑判断,
2021-05-25 22:48:50 302
原创 设计模式-单例模式
单例模式定义单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。特点1.单例类只有一个实例对象;2.该单例对象必须由单例类自行创建;3.单例类对外提供一个访问该单例的全局访问点。优点1.单例模式可以保证内存里只有一个实例,减少了内存的开销。2.可以避免对资源的多重占用。3.单例模式设置全局
2021-05-25 20:28:18 114
原创 数据结构-堆
一.定义堆是一颗具有特定性质的二叉树满足条件非叶子父亲节点一定大于或者小于 叶子子节点是一颗完全二叉树如大顶堆非叶子节点一定大于叶子节点a[i] 非叶子节点a[2*i+1] 左叶子节点a[2i + 2] 右叶子节点也就是满足 **a[i]>a[2i+1] && a[i] > a[2*i] + 2**小顶堆非叶子节点一定小于叶子节点a[i] 非叶子节点a[2*i+1] 左叶子节点a[2i + 2] 右叶子节点也就是满足 **a[i]
2021-05-21 17:03:15 134
原创 常见概念- 字符顺序
在对字符串排序中我们经常会碰到对字符排序,这个具体是啥意思呢如aa 与 ab 这里 ab>abaa 与 ba 这里 ba>aaac 与 bb 这里 bb>ac也就是以字母顺序优先级来排序,先比较第一位,如果第一位相同就去比第二位aa<ab<ba<bb<cb<ccabc<b...
2021-05-21 16:12:06 844
原创 算法-堆排序
一.堆排序平均时间复杂度 O(nlogn)最坏时间复杂度 O(nlogn)最好时间复杂度 O(nlogn)空间复杂度 O(1)稳定性 是选择排序的升级版 是不稳定的二.思路1.首选需要了解几个概念什么是堆完全二叉树深度为 k,有 n 个节点的二叉树,当且仅当其每一个节点都与深度为 k 的满二叉树中序号为 1 至 n 的节点对应;简单来说,就是除深度是k 层之外,其他各层(1至k-1)的节点数都达到最大个数,第k 层的所有节点都连续几个在最左边例子图b 是完全二叉树, c和d
2021-05-17 21:06:32 139
原创 算法-桶排序
一.桶排序平均时间复杂度:O(n + k)最佳时间复杂度:O(n + k)最差时间复杂度:O(n ^ 2)空间复杂度:O(n * k)稳定性:稳定桶排序是一个经典的用空间换时间的排序,排序速度很快二.思路将被排序数组分组放到每个桶里去如数组 : 9,4,3,1,2,8,6,7,5可以用三个桶放入三组数据1-3 4-6 7-9计算被排序数组的最大值和最小值根据最大值和最小值差值去开辟桶空间将待排序数组放到桶里去对每个桶进行排序(可以自选,如快速排序,插入排序)将排序好
2021-05-17 16:20:55 69
原创 算法-归并排序
1.归并排序前面我们介绍了快速排序和希尔排序,快速通过寻找基准数的方式将小于基准数放到基准数左边大于基准数的值放到右边,再递归排序。 希尔排序则是对数列进行分段,然后使用插入排序重新排序。是两种不同的思路 ,归档排序则是第三种不同的排序思路平均时间复杂度O(nlogn)最坏时间复杂度O(nlogn)最好时间复杂度O(nlogn)空间复杂度O(n)是否稳定 稳定二.思路归并排序有几个关键点1.low 排序数组的起点2.height 排序数组的终点3.mid 排序数组的中间点 也叫
2021-05-14 14:04:40 123 1
原创 算法-希尔排序
一.希尔排序最好时间复杂度 O(n)最坏时间复杂度 O(ns)平均时间复杂度O(nlogn)空间复杂度 O(1)稳定性 不稳定在详细学习快排和希尔排序后,不得不感叹算法的精妙之处,也让我感受到了算法的乐趣希尔排序是由一个计算机科学家Donald Shell 发明的 实际上是一个插入排序的优化-- 分组插入排序二.思路主要就是逐步折半的增量方法,将数列等分为若干个数值对,并对每个数组对进行比较,将较小的数组对放在前面,粗略的对数列进行排序,关键变量希尔增量 shellIncrem
2021-05-13 23:41:47 1390 2
原创 算法-快速排序
一.快速排序平均时间复杂度 O(nlogn)最坏时间复杂度 O(n^2)最好时间复杂度 O(nlogn)空间复杂度 O(nlogn)稳定性 不稳定 (在排序过程中可能出现不相连的下标值替换的情况,会影响数组的相对顺序)思路快速排序是常用并且非常精巧的排序方式,理解快速排序首先你需要对递归有一个初步的了解,如果没有可以自行网上了解下关键变量基准数 pivot基准数下标 pivotIndex排序最左下标 left排序最右下标 right步骤判断递归停止条件 left &l
2021-05-12 18:06:40 125
原创 算法-插入排序
一.插入排查平均时间复杂度 O(n^2)最差时间复杂度 O(n^2)最好时间复杂度 O(n)空间复杂度 O(1)稳定性 稳定的(排序过程不会破坏元素前后的相对顺序)二.思路插入排序 思路 将数组重新排序 分隔非已排序数组 和待排序数组 具体类似扑克牌 从前往后遍历,每到一个下标和前面的已排序数组进行比较 如果比他小就往前插,被比较的数组值往后移动一个下标例子943128675第一次排序 493128675第二次排序 349128675第三次排序 13492867
2021-05-12 14:33:35 54
原创 算法-直接选择排序
一.直接选择排查简介 简单排序平均时间复杂度 O(n^2)最差时间复杂度 O(n^2)最好时间复杂度 O(n)空间复杂度 0稳定性 由于在直接选择排序中存在着不相邻元素之间的互换,会破坏前后元素相对顺序,则为不稳定性排序算法二.思路遍历数组 外层每次遍历寻找出最小的值放到最前面三.实现 /** * 选择排序 思路 遍历数组 外层每次遍历寻找出最小的值放到最前面 * @param array 待排序数组 * @return */
2021-05-10 17:00:28 126
原创 算法-冒泡排序
一.冒泡排序介绍,简单的入门排序算法时间复杂度 O(n^2) 最小时间复杂度O(n) (已经排序好的情况)空间复杂度 0 没有耗费额外的空间二.思路通过遍历数组寻找最大的值放到数组的最后,每次通过前后两个值进行比较找出最大的值,并且交换位置如32514 经过第一次排序23145 最大的值放到最后了实际过程23514 – 23154 – 23145三.实现 public static int[] bubbleSort(int[] array){ for(int
2021-05-10 16:37:29 63
原创 算法-二分查找法
一.二分查找法介绍:二分查找法是一种寻址算法,在一个有序序列中找寻指的数值的下标时间复杂度:O(logn)二.思路1.关键变量start 开始下标end 结束下标mid 中间小标重点是找寻中间下标 array[mid] < a,说明a在array[mid]右边,此时变换start下标为start=mid+1 ,此时寻址从mid+1 到end ,array[mid] > a 同理,end下标变更为 end=mid-1 最终start==end时找到变量...
2021-05-10 14:38:42 386
原创 Error running ‘XXXX‘: Command line is too long. Shorten command line for XXXXX
springboot项目启动报错Error running ‘EbApplication’: Command line is too long. Shorten command line for EbApplication or also for Spring Boot default configuration原因是启动类的路径太长了解决 可以采用classpath方式启动而后即可正常启动了...
2021-05-08 10:49:51 388
原创 有关Nginx重定向到tomcat https协议变成http协议的问题
Nginx在请求头带个参数到tomcattomcat根据这个参数获取协议
2021-04-30 16:29:04 836 1
原创 shardingsphere+springboot+mybatis 分库分表
一.前言对于分库分表技术有很多,最近碰到一个需要对日志表按月切割,一个非常典型的横向切割数据库表的场景,在集成shardingsphere碰到了很多坑在此会说一下官方文档地址https://shardingsphere.apache.org/document/current/cn/features/sharding/concept/configuration/二.maven依赖关键依赖<?xml version="1.0" encoding="UTF-8"?><proje
2021-04-29 16:49:41 894
原创 钉钉自有工作流注意点
一.接入流程二.详细流程1.创建模板https://oapi.dingtalk.com/topapi/process/save?access_token=post请求参数格式例子{ "saveProcessRequest":{ "name":"自定义审批3", "agentid":336405766, "process_code":"PROC-C12DC525-2791-4964-
2021-04-27 15:10:45 2077 1
原创 项目启动问题 方法找不到
截图中很明显 SelectExpressionItem 无法从两个ja包里获取 也就是jar包冲突导致的解决依赖的maven依赖引入了两个jar包1.可以删掉重复的jar包2.排除引入其中一个jar包 我用的方法2
2021-04-26 11:37:55 186
原创 shardingsphere+mybatis不走自定义doSharding方法原因
通过DEBUG源码发现当mybatis采用@Param(“dataType”)时 源码中StandardShardingStrategy的doSharding方法的shardingValue参数为空 导致无法执行doSharding方法,个人猜测是因为@Param(“dataType”)注解方式将参数某种原因覆盖为空的解决 去掉@Param(“dataType”)注解解决这个问题是个大坑 恶心我两天,终于解决了 希望遇到的朋友能看到解决,有心思看源码的希望告知具体原因...
2021-04-19 19:14:34 2739
原创 shardingsphere+DruidDataSource 启动报错Invocation of init method failed;
网上有很多种说法1.shardingsphere自己的数据库源和DruidDataSource 冲突了解决取消数据源初始化配置@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})2.不适用启动自动配置数据源修改配置pom文件不使用druid-spring-boot-starter包依赖,使用druid包依赖3.版本兼容问题(我碰到的 很恶心) 实测启动成功可启动版本 <parent>
2021-04-16 20:42:57 2301
原创 Gson序列化对象 出现List<T>情况
Gson支持自定义类型gson.fromJson(gson.toJson(msgJson.get("articles")), new TypeToken<List<CpNewArticle>>() {}.getType());new TypeToken<List>() {}.getType()这种方式去创建新的类型
2021-03-19 20:07:58 406
原创 有关idea 项目可以正常启动但是Java类中的包依然找不打 报红的问题
问题如下网上有很多解答 比如清理缓存但是我无论都解决不了 于是乎我重装了idea就解决了我的版本是20.1.2版本 重装后是20.3.2版本即可 解决 这个应该是idea编译器自身的问题 真的把我恶心坏了...
2021-03-10 17:22:36 1268
原创 Cannot resolve org.springframework.cloud:XXXXXXXX:unknown
我们在学习springcloud的时候导入maven包的时候经常会出现这个问题原因是springboot和springcloud有版本依赖关系 如果依赖关系不对则会报错这个问题依赖关系通常springboot和springcloud的版本在父模块定义,如果你发现依赖关系正确但是还是报错这个问题,可能是子模块自己定义的springcloud的版本导致的类似如下截图解决删掉子模块的springcloud的版本 重新刷新maven模块即可解决...
2021-03-04 18:54:22 2886 1
TA创建的收藏夹 TA关注的收藏夹
TA关注的人