- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 Redis设置内存大小和查看内存使用情况
Redis设置内存大小和查看内存使用情况一、设置内存大小(1)编辑配置文件,本文的配置位置在/etc/redis/6379.conf,这是使用了utils工具包的install_server.sh脚本安装成为系统服务,可以使用systemctl start | restart | stop命令操作redis服务,同时也是配置开机启动。vim /etc/redis/6379.conf# 找到maxmemory,设置想要的大小即可,默认单位为 byte,可以设置为mb或GBmaxmemory 1GB
2021-12-23 15:09:40 12872
原创 解决git fatal:无法找到‘https‘的远程助手
解决git fatal:无法找到’https’的远程助手1、问题今天使用git拉去代码的时候出现 fatal:无法找到'https'的远程助手错误,如下所示git clone https://xxxxx.git2、产生原因通过网上百度查询到,git/libexec/git-core 目录下没有存在git-remote-https,本人电脑上的git位置在/usr/local/git,在git/libexec/git-core目录下没有git-remote-https,可能是安装的时候出现问题,有
2021-12-20 17:47:57 2649
原创 Redis底层数据结构
Redis底层数据结构1、SDS(Simple Dynamic string)typedef struct sdshdr{ int len; // 已经使用的长度 int free; // 未使用的长度 char buf[]; // 字符数组,用来保存字符串}sdshdr;好处:(1)获取长度信息可以在O(1)的时间复杂度内获取到字符串数组的长度和未使用长度的大小(2)杜绝内存溢出在进行字符串修改的时候,首先会比较len和当前空间的大小,如果len > 当前空间,那么会进
2021-09-15 19:15:31 228
原创 算法常见技巧
算法技巧1、回溯算法(1)全排列public List<List<Integer>> permute(int[] nums) { int len; if(nums == null || (len = nums.length) == 0){ return null; } // 这里面是结果,没什么好介绍的 List<List<Integer>> ans = new LinkedList<>(); // 这里是路径
2021-09-15 14:20:15 387
原创 可移除字符的最大数目
二分错题1898. 可移除字符的最大数目难度中等12给你两个字符串 s 和 p ,其中 p 是 s 的一个 子序列 。同时,给你一个元素 互不相同 且下标 从 0 开始 计数的整数数组 removable ,该数组是 s 中下标的一个子集(s 的下标也 从 0 开始 计数)。请你找出一个整数 k(0 <= k <= removable.length),选出 removable 中的 前 k 个下标,然后从 s 中移除这些下标对应的 k 个字符。整数 k 需满足:在执行完上述步骤后, p
2021-09-15 14:16:38 178
原创 动态规划lc题
动态规划746. 使用最小花费爬楼梯难度简单数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。示例 2:
2021-09-15 14:15:41 661
原创 DFS常见算法
DFS78. 子集难度中等1101给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <
2021-09-15 14:14:52 422
原创 搭建MySQL和Tomcat集群
搭建MySQL和Tomcat集群1、MySQL集群1.1、MySQL主从复制# 0、架构规划# 1、修改mysql的配置文件vim /etc/my.cnf# 2、分别在配置文件中加入以下内容# 说明:server-id 集群唯一- masterserver-id=1 #集群唯一log-bin=mysql-bin # binlog日志以mysql-bin为前缀生成日志log-slave-updates # 主结点日志有变化,从结点自动更新slave-skip-erro
2021-09-15 14:14:07 264
原创 KMP算法
KMP算法1、相关知识主串:需要匹配的字符串模式串:去匹配的字符串前缀:包括起点不包括终点的字符串后缀:不包括起点包括终点的字符串next数组:主串和模式串不匹配的时候,模式串回退的位置next[j]: 以j结尾的后缀和以1开始的前缀相同字符的个数2、求next数组模板们定义char[] chs数组从0开始,chs[1] = 0private void getNext(char[] chs, int[] next,int n){ for(int i = 2
2021-09-15 14:12:28 67
原创 Windows下路径中 斜杠/和反斜杠\ 的区别
Windows下路径中 斜杠/和反斜杠\ 的区别目前所有的网络地址都采用 斜杆/ 作为分隔 , Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠\ 作为路径分隔符。所以目前windows系统上的文件浏览器都是用 反斜杠\ 作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用的很少,斜杆和反斜杠在大多数情况下可以互换,没有影响。(1) 浏览器地址栏网址使用 斜杆/ ;(2) windows文件浏览器上使用 反斜杠\ ;(3) 出现在html u
2021-09-14 19:00:54 4763
原创 SpringBoot结合Redis实现幂等
SpringBoot结合Redis实现幂等1、相关概念和思路幂等:就是说客户端不管访问多少次,服务器端处理或者返回的结果都是一样思路:我们首先让客户端访问一个获取token的接口,然后让客户端携带token来访问具有幂等(@Idempotent)注解的接口,从而消费掉这个token,这样就可以避免用户重复访问一个接口了,我们把token存在redis中并且设置好过期时间。2、项目依赖和配置这里没有用到数据库,只是使用spring-web和redis两个依赖,配置也就是配置redis相关<
2021-09-14 18:58:53 343 1
原创 Maven构建SpringBoot项目及多模块父子项目
Maven构建SpringBoot项目及多模块父子项目1、使用Maven构建SpringBoot项目直接创建一个maven项目,导入springboot的jar包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2021-09-14 18:57:59 901
原创 Redis学习
Redis学习1、Redis安装(1)下载源码包(2)解压源码包tar -zxvf redis-4.0.40.tar.gz(3)安装gccyum install -y gcc(4)进入解压目录执行make MALLOC=libc(5)编译完成后执行如下命令make install PREFIX=/usr/local/redis(6)进入/usr/local/redis/bin目录启动redis服务./redis-server(7)设置后台运行设置后台运行,vim red
2021-09-14 18:56:39 103
原创 MySQL触发器
MySQL触发器1、语法单条sql得触发器CREATE TRIGGER -- 固定写法trigger_name -- 触发器名字trigger_time -- 触发时间 BEFORE、AFTERtrigger_event -- 触发事件INSERT、DELETE或者UPDATEON tb_name -- 作用于哪张表上FOR EACH ROW -- 固定写法trigger_stmt -- 一条或多条sql,多条使用分号隔开trigger_name:触发器的名称tirgger_
2021-09-14 18:53:25 107
原创 MySQL的group by语句
MySQL的group by语句1、作用GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组,使用了group by语句就会根据一个或多个列进行聚合操作。2、语法select column_name, aggregate_function(column_name)from table_namewhere column_name operator valuegroup by column_name3、示例SELECT site_id, SUM(access_log.co
2021-09-14 18:52:37 755
原创 MySQL的内连接(inner join)和外连接(left join和 left join)的原理和区别
MySQL的内连接(inner join)和外连接(left join和 left join)的原理和区别1、原理之笛卡尔积简单原理,就是a表的每一行去连接b表的每一行,最终有a表条数xb表条数(mxn)条,具体做法是(1)用a表第一行连接b表第一行,a表的第一行连接b表的第二行,…,a表的第一行连接b表的第n行;(2)用a表第二行连接b表第一行,a表的第二行连接b表的第二行,…,a表的第二行连接b表的第n行; …(3)用a表第m行连接b表第一行,a表的第m行连接b表的第二行,…,a表的
2021-09-14 18:50:29 1462 1
原创 MySQL的function和procedure
MySQL的function和procedure1、function-- rand() 返回值 0<=v<1.0-- CEIL(RAND()*N)的取值范围:1-N-- 插入百万数据delimiter $$-- 创建函数,mock_data() 函数名create function mock_data()-- 确定返回值类型returns int-- 在begin和end之间写sql语句begin-- 声明一个变量的值为一百万declare num int defaul
2021-09-14 18:46:20 528
原创 MySQL常见问题汇总及解答
MySQL常见问题汇总及解答1、分组显示,想把一个字段相同数据放在一起查询出来解决方案:使用排序 order by(column_name)例如:把分数相同的学生放在一起然后查询出来select * from student order by score desc;如果这个字段没有用到索引,在数据库中查询会很慢,所以这个操作一般都是在java代码中完成的2、删除表中相同字段例如:删除emp_no重复的记录,只保留最小的id对应的记录。CREATE TABLE IF NOT EXISTS t
2021-09-14 18:45:46 582
原创 jQuery知识
jQuery知识1、DOM元素的操作append和html添加内容的用法append的用法,效果:追加<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="../static/js/jquery-3.4.1.js"></script>
2021-09-14 18:43:36 110
原创 JUC学习
JUC学习1、 Lock锁synchronizedpublic class SaleTicketDemo01 { public static void main(String[] args) { //并发,多个线程操作一个资源 Ticket ticket = new Ticket(); //函数式接口 //创建线程,把资源丢进线程中 //jdk 1.8 lambda表达式 (参数)->{代码}
2021-09-13 12:22:19 82
原创 Java基础之反射学习
Java基础之反射学习直接上代码,代码里有解释Student类,有私有和公有的属性和方法public class Student { private String name; private int age; public String pwd; public Student(String name, int age, String pwd) { this.name = name; this.age = age;
2021-09-13 12:20:10 63
原创 Java基础之多态(动态绑定)
Java基础之多态(动态绑定)1、概念多态是面向对象的核心,必须要掌握,多态也叫动态绑定。多态:在执行期间(而非编译期间)判断所有引用对象的实际类型,根据实际类型调用相应的方法。多态存在的三个必要条件继承重写父类的方法父类的引用指向子类的对象2、代码父类 Animalpublic class Animal { private String name; public Animal(String name){ this.name=name;
2021-09-13 12:19:36 176
原创 Java的Stream流式计算
Java的Stream流式计算1、介绍Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(interm
2021-09-13 12:19:05 1097
原创 Java的Comparator接口和Comparable接口
Java的Comparator接口和Comparable接口1、Comparator接口Comparator可以比较的对象类型,是比较接口。我们如果需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口),那么我们就可以建立一个“该类的比较器”来进行排序,这个“比较器”只需要实现Comparator接口即可。也就是说,我们可以通过实现Comparator来新建一个比较器,然后通过这个比较器对类进行排序。说明:若一个类要实现Comparator接口:它一定要实现comp
2021-09-13 12:17:47 297
原创 File相关操作
File相关操作1、构造方法File(String pathname)File(String parent, String child)File(File parent, String child)File(URI uri)2、文件常用方法boolean exists()boolean isFile() // 判断是否是文件boolean isDirectory() //判断是否目录long length() //文件长度,文件夹没有长度
2021-09-13 12:17:12 89
原创 Java常见的IO流
Java常见的IO流1、IO流其中InputStream、OutputStream、Reader、Writer都是抽象类,后面跟着都是其实现,下面使用这些实现完成文件的复制操作并且比较其速率。2、字节流2.1、基类(1)InputStream 字节输入流的父类,常用方法abstract int read() 从输入流中读取数据的下一个字节,返回是一个整形,读到文件末尾返回-1,-1也表示文件的结尾int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储到缓存数组b中
2021-09-13 12:16:20 166
原创 java里的==和equals,int和Integer的相等判断
java里的==和equals,int和Integer的相等判断1、“==表示比较地址,equals表示比较属性”这句话是错的论证为什么是错的,思考一个问题:int a = 1; int b = 1; a == b 是true还是false?按照上面话,比较的是地址,自然是false了,但实际情况却是true,可以得出上面前半句是错误的代码int a = 1;int b = 1;System.out.println("a==b -> " + (a==b));结果a==b ->
2021-09-13 12:14:40 559
原创 JVM双亲委派机制
JVM双亲委派机制1、双亲委派机制总之就是一句话向上委派,向下加载图如下2、类加载器JVM支持两种类型的类加载器,分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)。–>JVM规范中提到的.规范中同时提到,凡是直接或者间接的继承自ClassLoader的类加载器都划分为自定义类加载器。扩展类加载器(Extension ClassLoader):对应ExtClassLoader类,是Launcher
2021-09-13 12:13:14 178
原创 String、StringBuffer与StringBuilder之间区别
String、StringBuffer与StringBuilder之间区别StringStringBufferStringBuilderString的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超
2021-09-13 12:11:18 59
原创 Shiro中认证的关键对象
Shiro中认证的关键对象Subject:主体访问系统用户,主体可以是用户、程序,进行认证的都称为主体Principal:身份信息是主体(Subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱地址等,一个主体可以有多个身份,但必须有一个主身份(Primary PrinciPal)credential:凭证信息是只有主体自己知道的安全信息,如密码、证书等。SimpleAuthorizationInfo -> AuthorizationInfo ->
2021-07-14 15:52:19 308 1
原创 Vue+Springboot前后台分别开发,整合成一个项目,生成dist文件,放到static目录下遇到的问题总结
1、把前台项目打包生成dist文件,然后放到static目录下,修改index页面把 ,这样是找不到这个js,这样会直接拼接到localhost:8080后面,不会访问项目名和dist目录,如http://localhost:8080/js/chunk-2d0c535e.7eae1c64.js, 需要我们指定为当前目录,做法是在 /js 前加一个 .,如下图所示2、访问项目访问路径http://localhost:8081/stu/dist/index.htmlhttp://localhost
2020-09-04 18:17:51 5242 5
原创 java里的==和equals,int和Integer的相等判断
java里的==和equals,int和Integer的相等判断1、“==表示比较地址,equals表示比较属性”这句话是错的论证为什么是错的,思考一个问题:int a = 1; int b = 1; a == b 是true还是false?按照上面话,比较的是地址,自然是false了,但实际情况却是true,可以得出上面前半句是错误的代码int a = 1;int b = 1;S...
2020-03-30 12:35:47 1494
原创 java基础之多态(动态绑定)
java基础之多态(动态绑定)1、概念多态是面向对象的核心,必须要掌握,多态也叫动态绑定。多态:在执行期间(而非编译期间)判断所有引用对象的实际类型,根据实际类型调用相应的方法。多态存在的三个必要条件继承重写父类的方法父类的引用指向子类的对象2、代码父类 Animalpublic class Animal { private String name; ...
2020-03-28 19:09:28 306
原创 设计模式之适配器模式
设计模式之适配器模式1、类图及分析(对象适配器,即使用了组合方式)可以看到这里有3个类Adaptee 英文意思就是被适配者,就是用来适配的类Target 需要输出的结果类,这里是一个interfaceAdapter 适配器类,用来进行适配的类,实现了Target接口,使用组合的方式把Adaptee加进来了2、代码这里使用适配器模式把220v电压转换成5v电压publi...
2020-03-25 23:15:19 195
原创 设计模式之代理模式(ProxyPattern)
设计模式之代理模式(ProxyPattern)1.图和分析有三个角色:代理角色 :房屋中介,代理真实角色,一般会进行一些附属操作真实角色:房主,执行自己的业务代码即可抽象角色:租房,一般是接口或者抽象类2.静态代理根据上面的图,代码实现租房接口(interface)public interface Rent { void rent();}房主类,实现...
2020-02-21 16:14:57 162
原创 Spring核心探究之 IoC(控制反转)
1.构建一个案例依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.10.RELEASE</version></de...
2020-02-20 20:27:46 198
原创 我的第一个Mybatis应用程序
我的第一个Mybatis程序1.使用工具和依赖Maven + ideamysql-connector-java + mybatis + junit2.创建项目使用idea创建maven项目,然后把src目录删掉,作为父项目,接着新建一个模块项目截图pom.xml文件父项目<?xml version="1.0" encoding="UTF-8"?>...
2020-02-18 20:51:27 177
原创 JS常用的获取值和设值的方法
input 标签<input type="text" name="username" id="name"/>1) 获取input值的多种方法: var name = document.getElementById("name"); var name = document.getElementsByName("username"); var name =...
2020-01-08 21:27:35 662
原创 使用绝对路径引入js
绝对路径的js引用<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-3.3.1.min.js"></script>2.目录结构,项目目录
2019-11-13 15:01:41 2996
原创 Spring请求之MissingServletRequestParameterException: Required xxx parameter ‘xxx’ is not present
报错使用json向后端传输一个对象,后端接受的是@RequestParam 类型的注解,报如下错误:org.springframework.web.bind.MissingServletRequestParameterException: Required xxx parameter ‘xxx’ is not present原因@RequestParam 主要是用来绑定一个基本数据类型或...
2019-10-29 22:21:53 2555
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人