- 博客(39)
- 收藏
- 关注
原创 接口幂等性设计方案
对于同样的任务接口或方法(函数),一次调用或者多次调用不会改变业务的状态,保证在重复调用的情况下与一次调用的结果是相同的。参考代码:(待更新)
2023-04-02 12:20:58
241
原创 动态规划—刷题记录(今天下午一口气刷完了牛客的动态规划模块的题,我好想悟了!!!)
eg:给出不同面额的硬币以及一个总金额. 写一个方法来计算给出的总金额可以换取的最少的硬币数量. 如果已有硬币的任意组合均无法与总金额面额相等, 那么返回 -1.eg:有一个机器人的位于一个 m × nm×n 个网格左上角。机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。问有多少条不同的路径?eg:给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。
2023-03-20 14:18:02
194
原创 manacher算法(马拉车算法)—— 最长回文子串
时间复杂度:O(n)空间复杂度:O(n)public class longestPalindrome_5 { public static void main(String[] args) { String s = "babac"; System.out.println(new longestPalindrome_5().longestPalindrome(s)); } /* manachaer 算法 */ public S
2022-03-03 16:40:39
211
原创 无法将jps,jstat,jinfo,jstack等项识别为 cmdlet、函数、脚本文件或可运行程序的名称的解决办法
1、查看Idea的设置,修改Shell paths为C:\WINDOWS\system32\cmd.exe,点击OK或者apply,参考如下 ;2、再次检查系统环境变量中ComSpec的值。正确的变量值:C:\Windows\System32\cmd.exe注意:IDEA识别不了这种写法 %SystemRoot%\System32\cmd.exe 3、重启idea,再次输入...
2021-10-05 12:22:35
1832
1
原创 JVM性能监控和故障处理的常用工具
一、大多数人可能都知道java.exe和javac.exe这两个工具,但却很少了解其实在JDK的bin目录下面初此之外的还有其他命令程序(工具)大有作用。二、可能比较细心的朋友会注意到这些工具程序的体积都很小,多数大概都在17k左右,这其实并不是JDK的开发团队刻意的把他们制作的如此的精炼或者炫耀技术水平的,而真正的原因其实是这些命令工具大对数都是对jdk/lib/tools.jar类库进行一次的封装而已,主要的功能代码其实是由这个类库来实现的。1:jps :查看虚拟机的进程工具语法格式:jps
2021-09-20 22:12:22
112
原创 java的垃圾回收器
一、java不想c系语言那样,需要自己手动的将产生的垃圾回收,而是将运行时产生的垃圾交给JVM处理回收;二、java中的垃圾回收器:我们都知道,在java中JVM的内存模型主要分为堆,虚拟机栈,本地方法栈,方法区,程序计数器,垃圾回收器主要是负责对堆中产生的垃圾对象进行回收。而在堆中由于对象的生命周期不尽相同,又大致可分为新生代,老年代,因此垃圾回收器也分为新生代和老年代的垃圾回收器(young GC,monior GC;full GC)。如图:连线之间的连个垃圾回收器可以配合使用;三、垃圾回收器
2021-09-14 15:33:07
4432
原创 https的协商加密、证书验证等一系列过程
一、什么是https?全称(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目的的HTTP通道,简单的说就是HTTP的安全版本,即是在HTTP的上面加了一层SSL/TSL协议外壳。二、加密协商过程:1.、当客户端发送HTTPS请求时,不仅会先开启80端口通信,会在之前打开443端口进行通信的安全性加密;加密过程如下:三、证书验证过程:首先使用ca机构的公钥解密数字签名得到数字摘要,其次,使用内置的相同摘要算法(hash函数)
2021-09-02 17:57:06
558
原创 详解最热门搜索引擎——ES
一、产生背景 互联网发展早期的时候,对于一般的公司储存的数据量不是那么的大,所以很多公司更倾向于使用数据库去存储和查询数据,如:现在去MySQL中查询数据,大概的查询方式就是:select * from table where filed like “%XXX%”或者其他方式,但是,如果我们在查询的时候没有用到或命中数据库建立的索引话,则会扫描整张表,即便是MySQL做过单表查询能力优化,但是他的极限也只在400万左右,且还会经常出现超时现象,让后为了解决这些问题,。很多公司就开始对数据库进
2021-08-09 14:55:42
17052
原创 git常用命令
1、使用 clone 命令将远程代码克隆到本地git clone xxx(remote_url)2、查看分支git branch -a查看远程git上的所有分支3、切换分支<指定分支> (指定的分支可以不存在)git checkout -b 4、首次,使用push 命令将本地的分支上传到远程git仓库中git push <远程主机> <远程分支>git push origin issue#xxx以上完成了创建和远程git仓库的同步接下来
2021-07-27 12:05:54
68
原创 Docker配置国内阿里云镜像源
一、前提是有阿里云服务器二、步骤(有手就行)1、登录连接远程阿里云服务器(我用的是Xshell)2、登录阿里云,点击产品与服务,找到容器镜像服务3、点击镜像工具—>镜像加速器—>操作文档,操作文档中选择自己的OS类型4、按照 配置镜像加速器 目录下的命令依次执行(以CentOS为例,其他的类似,文档都有说明)...
2021-07-08 09:28:26
1024
原创 个人GitHub账号路径,一些自己在学习过程中做的项目
地址:https://github.com/23-19-zheng/projectDataBase仅供参考
2021-07-02 11:17:28
107
原创 ElasticSearch的学习总结和ES,ES-head安装部署配置过程
一、定义:ElasticSearch是一个基于Lucene、RESTful风格的一个搜索服务器,是一个分布式全文搜索引擎,和他有相同功能的还有一个Solr,但是他是一个基于web service 接口的一个搜索服务器。二、核心概念:1、近实时:elastic在通过倒排索引后搜索的速度会很快,大概1秒左右,也就是说他的搜索是秒级别的;2、Cluster(集群):一个集群包含一个或多个节点,也就是说多台服务器就构成一个集群。但是为什么说包含一个节点也是一个集群呢,那是因为在我们刚使用,没有搭建集群的时候,
2021-06-28 10:20:57
686
原创 记录今天在写程序的时候,出现死锁现象,使用jps和jstack查看进程状态时,出现命令不是内部,外部命令的idea配置
一、问题:二二、解决这种写法%SystemRoot%\System32\cmd.exe,idea识别不了,不要用,修改为C:\Windows\System32\cmd.exe
2021-05-31 23:08:12
344
4
原创 Springboot在启动加载测试类报异常.IllegalStateException,Unable to find a @SpringBootConfiguration
异常信息:java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test原因及其解决办法1、原因:自己的测试类和主启动类不在一个包名下;2、解决:把自己的测试类和程序的主启动类放在同一个包名下,就OK...
2021-05-23 18:41:26
351
原创 解决在maven工程中创建application.yml文件完成时,文件没有变成小绿叶子的图标,而是显示小网格
一、在创建application.yml文件时,由于idea没有扫描到,文件没有出现小绿叶子图标二、按照一下步骤配置即可解决点击没有出现小绿叶子图标的项目,添加spring,最后点击OK。
2021-05-15 11:49:32
2803
原创 关于idea中的热部署
一、在子项目中注入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</opt
2021-05-08 16:49:14
133
原创 Idea中出现java: 错误: 无效的源发行版:15
一、原因分析:idea中使用的jdk版本和你安装在本地的jdk不一致二、解决方法:下面所图片涉及到的地方都检查是否一致
2021-05-08 11:16:50
2336
原创 操作系统中的页面置换算法—LRU置换算法
链表和散列表实现:import java.util.HashMap;/** * LRU算法——least Recently Used(最近最久未使用) * 他是一个按照非常著名的计算机操作系统基础理论得来的,所有的页面置换算法都是以**最佳置换算法**作为参考的: * 最近使用的页面数据在未来一段时间内仍然会被使用,已经很久没有使用的页面数据可能在很长 的一段时间内仍然不会被访问主要衡量的指标是使用时间。 * @author zc * */public class LRUS
2021-04-21 22:37:00
730
原创 分治算法—汉诺塔问题
/** * 分治算法解决汉诺塔问题 思想:分治算法三部曲: 1.把大的问题依次分为小的问题, 2.求得最小的问题【最小问题即是可以直接求解的问题】的解 * 3.把所有小的问题的解加起来等于大问题的解 * * @author zc * */public class DivideAndConquerAlgorithm { public static void main(String[] args) { int nums = 5; char a = 'A'; char b = '.
2021-04-16 17:13:00
65
原创 怎么从海量的数据中快速的查询到最值
一、怎么快速的从海量的数据当中找打最大值,最小值找最大值,使用大顶堆;找最小值,使用小顶堆;大、小顶堆是一种数据结构,就是一棵根节点大于或小于左、右子节点的二叉树【左右子节点无排序要求】话不多说直接上代码:以下代码以查找最大值为例【最小值、序列的前几个最值、堆排序稍加调整即可】package edu.xufe.sort;import java.util.Arrays;/** * 大顶堆 + 堆排序 * @author zc * */public class HeapSort {
2021-04-13 22:32:04
590
原创 动态规划算法
动态规划算法——解决0-1背包问题【完全背包也可以转化为0-1背包问题解决】import java.util.Arrays;/** * 动态规划算法 —— 解决0-1背包问题 * * @author lenovo * */public class DynamicProgram { public static void main(String[] args) { int[] weight = { 1, 4, 3 }; int[] value = { 1500, 3000, 20
2021-04-10 21:32:01
122
原创 生产者消费者模型
package edu.xufe.text;import java.util.Deque;import java.util.LinkedList;public class Main{ public static void main(String[] args) { KFC kfc = new KFC(); /* * 创建消费者线程 */ Customers c1 = new Customers(kfc); Customers c2 = new Customers(kf
2021-04-02 10:45:34
55
原创 字符串匹配问题——KMP算法
一、字符串匹配问题你还不懂?来,看懂这篇文章你就会了;二、KMP算法思想1.先得到待匹配子串的部分匹配表很多胖友不知道啥是部分匹配表,接着看例如:ABCDABD 它的部分匹配表就是【0,0,0,0,1,2,0】为啥?若子串只有一个元素,即长度为1,部分匹配值就是0;看下图: 2.得到子串的部分匹配表后,我们分别遍历两个字符串的每一个位置的元素【i—表示母串的索引变量,j—表示子串的索引变量】,若i和j指向的位置的字符相同,则j加1【为什么加1?因为我们最终要用j的大小来判断是否等于子串
2021-03-24 12:29:52
143
原创 关于没有导入RedisConnectionFactory类的相关依赖【jar包】出现报错的问题
一、在Springboot整合Redis时,发现无法无法引入RedisConnectionFactory类的相关jar包在pom.xml文件中假如一下依赖就可,然后点击maven—>update project<!-- Redis依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-d
2021-03-23 11:25:10
3340
原创 图解HashMap底层
前言:HashMap是在jdk1.2之后java增加的一种线程不安全的数据结构,底层数据结构在jdk1.7是数组+链表,而在jdk1.8之后是数组+链表+红黑树1.首先我们先来看看它的源码,可以看到,他是继承了抽象类AbstractMap,实现了Map接口;其他的两个分别是克隆和序列化的标记接口;2、我们再看看他的属性可以看出啊,他官方的意思是默认的长度是1左移4位【就是16】,最大长度是1左移30位;负载因子是0.75;可能看到这有些胖友会想负载因子啥意思呢?负载因子就是整个HashMap的可最
2021-03-18 23:21:26
133
原创 项目实战2——宠物商城管理系统(Spring,SpringMVC,mybaits,Redis【不完善】,Elemen+ui+vue【部分网页】)
链接:https://pan.baidu.com/s/18dMYbDf14bLQq4d94sJ3sA提取码:8888复制这段内容后打开百度网盘手机App,操作更方便哦
2021-03-17 14:20:31
407
原创 递归思想——迷宫问题【回溯法】
在这里插入代码片package edu.xufe.recursive;public class MiGong { public static void main(String[] args) { int[][] map = new int[8][7];// 用数字模拟地图迷宫 for (int i = 0; i < 8; i++) { map[i][0] = 1;// 1表示墙 map[i][6] = 1; } for (int j = 0; j < 7; j
2021-03-15 20:12:10
100
原创 八皇后问题-回溯法解决
package edu.xufe.recursive;/** * 八皇后问题--->回溯法 * @author zc * */public class Queen8 { int max = 8; int[] arrs = new int[max]; static int count = 0; public static void main(String[] args) { Queen8 queen8 = new Queen8(); queen8.chec
2021-03-15 20:09:40
138
原创 项目实战1——基层医疗管理系统案例(springBoot+JPA,Axios,Element+vue,mysql)
链接:https://pan.baidu.com/s/16czAe8_SIdhUQSWnBS9FrA提取码:8888
2021-03-11 21:36:57
529
原创 用栈实现综合计算器的基本原理及其代码(代码仅实现了简单的整数运算)
一、前言:平时我们使用计算器做计算时,书写或者输出计算器的表达式称之为中缀表达式,而若是用计算器做计算时,计算器的底层其实将其转化成为了后缀表达式,,也叫逆波兰表达式当然了,有中缀 ,后缀,就会有前缀表达式,但是前缀表达式我们很少用到。计算器就是将其转化为后缀表达式在进行一个双栈算术表达式的求值算法,这个算法好像是一个叫Dijkstra的人整出来的,这不是重点,下面我们直接上思想与代码如:1+((2+3)*4)-5---->中缀表达式1, 2, 3, +, 4, *, +, 5, -
2021-03-10 22:49:02
397
原创 SpringBoot+JPA的整合案例(以开发项目的形式说明)
一、springBoot+JPA与SSM框架相比较,他采用几乎零配置的思想进行项目的开发,让开发人员更加注重对业务逻辑的实现,而不去配置相关的大量xml配置文件。简单,便捷,适合小型项目的快速搭建和开发。话不多说直接上案例吧二、项目实施及部分代码1.创建一个maven项目2.依赖注入【导向相关jar包】按照箭头指的方向导入依赖,添加完成之后保存,或者点击下方pom.xml会看到刚才导入的相关jar包导入信息,在单击鼠标右键选择Maven->update project3.使用MVC
2021-03-07 22:12:34
295
原创 一个普通类实现接口时,重载(覆盖)改接口的方法体上面没有@Override注解或者加上@Override会报错解决办法
今天在用ssm框架开发web项目时,在做业务层的类在实现父类接口时,实现的方法体上面没有@Override注解,记录一下解决方法1、右击项目,选择properties,按以下步骤,完成之后点击Apply就成了2、一般做完以上修改加上@Override就不会报错,在实现接口时,重写的方法也不会报错。但我是用ssm框架开发的web项目,所以建议也在,maven下修改以下配置,完成之后点击Apply and Close就成了...
2021-03-04 12:58:06
458
2
原创 基于Element UI+Vue框架制作简单前端页面,且用axios做前后端交互的‘弹出框中镶嵌from表单’案例及其可能出现的一般问题解说
1、引用(安装)框架,一cdn方式介绍(有网络的条件下引用):Vue框架:<script src="https://cdn.jsdelivr.net/npm/vue"></script>Element UI(因Element UI是基于vue实现的框架【组件库】,所以一般把Vue写在Element UI前面,防止引用出现纰漏):<script src="https://unpkg.com/element-ui/lib/index.js"></script>
2021-01-27 21:49:46
577
原创 用ssm(Springmvc、Spring、Mybaits)框架开发项目的一般流程
一、了解什么是ssm框架?他指的是Spring、SpringMVC和Mybaits三个框架组合在一起,相互之间共同协作的的框架。Spring,是一个开发企业级应用的开源框架,常说是程序员的春天,因为他的出现,大大简化了程序员在项目开发当中的很多繁琐的细节,使得程序员能够花费更多的精力在程序的设计之上。主要由Spring Core、Spring AOP、Spring Web MVC、SpringDAO、SpringORM、Spring Context、Spring Web七大模块组成。其中Sprin
2021-01-04 12:57:23
829
原创 String,StringBuffer,StringBuilder三者之间的联系和区别
一、String 和 StringBuffer,StringBuilder相同点:String,StringBuffer,StringBuilder都是可以用来存储字符串的不同点:1、String存储的字符串是不可变得,StringBuffer、StringBuilder存储的字符串是可变的。其中在String中增加字符串时,有两种方法:用 “+” 拼接和concat()添加【注意:这里拼接后的字符串是重新的一个字符串。这个字符串如果在常连池存在就直接指向,如果不在就是创建之后放入常连池,再指向,而并
2021-01-03 22:45:05
1179
原创 sts中修改字体大小、颜色和编码格式等的基础设置
一般切换工作空间,或者是安装sts,都需要的这些基础设置,方便使用打开sts,设置代码大小,点击Windows—>preferences—>General—>Appearance—>color and fonts—>basic,点击Apple即可设置编码格式UTF-8(默认是GBK),点击Apple and Close即可...
2021-01-02 13:52:40
2113
原创 关于在项目开发当中的maven项目管理工具的配置部署(以sts为例,其他的的集成开发工具大同小异)
首先,你得知道你的maven本地库(maven-repository文件)在哪。因为maven工具在你在项目当中拉取依赖(就是导入相关的jar包)的时候,他是先去你的本地库当中查找,其次是镜像库,最后实在网上查找(无网络状态不能查找拉取,网速慢拉取速度也会降低)。查找完之后保存项目或者更新项目的话,这些jar包会自动保存在你的本地库当中,下次在用的时候速度就比之前快,其次,你还得在setting.xml文件中修改一些地址,和你的本地库自动绑定再次,就是打开sts,Windows—>P..
2021-01-02 00:34:45
174
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人