自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Slling's Hello World

下午可以不下雨吗

  • 博客(40)
  • 资源 (3)
  • 论坛 (1)
  • 收藏
  • 关注

原创 _vm.login is not a function

今天写微信小程序前端的时候,我明明定义了login(),但是点击登录按钮却提示我 _vm.login is not a function。原因:我在该页面还写了一个跳转到注册页面的方法两个方法顺序不太对。解决:把login()放到toRegister()的前面;...

2021-01-31 22:17:19 22

原创 1143. 最长公共子序列(动态规划)

1143. 最长公共子序列题目解题思路代码题目给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。提示:1 <=

2021-01-30 21:46:56 12

原创 刷新令牌应该如何设计

刷新令牌应该如何设计为什么要刷新Token的过期时间客户端如何更新令牌如何在响应中添加令牌为什么要刷新Token的过期时间我们在定义JwtUtil工具类的时候,生成的Token都有过期时间。那么问题来了,假设Token过期时间为15天,用户在第14天的时候,还可以免登录正常访问系统。但是到了第15天,用户的Token过期,于是用户需要重新登录系统。HttpSession的过期时间比较优雅,默认为15分钟。如果用户连续使用系统,只要间隔时间不超过15分钟,系统就不会销毁HttpSession对象。JWT

2021-01-30 17:10:33 19

原创 JWT

JWT简介JWT可以用在单点登录的系统中JWT兼容更多的客户端简介JWT(Json Web Token), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。JWT可以用在单点登录的系统中传统的JavaWeb项目,利用HttpSession保存用户的登陆凭证。如果后端系统采用了负载均衡设计,当用

2021-01-30 14:23:41 8

原创 Failed to bind properties under ‘logging.level‘ to java.util.Map java.lang.String, java.lang.String

springBoot 2.0 添加 日志级别,启动报错:org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String, java.lang.String> at org.springframework.boot.context.properties.bind.Bin

2021-01-27 21:21:23 17

原创 java.net.SocketTimeoutException: Read timed out

微服务之间进行调用的时候报错java.net.SocketTimeoutException: Read timed out。解决:feign的超时时间设置久一点feign: client: config: default: #建立连接所用的时间,适用于网络状况正常的情况下,两端连接所需要的时间 ConnectTimeOut: 10000 #指建立连接后从服务端读取到可用资源所用的时间 ReadTimeOut: 100

2021-01-27 20:44:01 16

原创 376. 摆动序列(动态规划)

376. 摆动序列题目解题思路代码题目如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过

2021-01-27 15:42:51 29

原创 354. 俄罗斯套娃信封问题(动态规划)

354. 俄罗斯套娃信封问题题目解题思路代码题目给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。解题思路因为我们写过一维的LIS算法。所以我们想办法往一维数组上面靠。我们把宽度W进行升序排序,然后遇到W相同的情况就按照高度H进行降序排序。最后把排序后

2021-01-25 19:28:56 16

原创 646. 最长数对链(动态规划)

646. 最长数对链题目解题思路代码题目给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。给定一个数对集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。提示:给出数对的个数在 [1, 1000] 范围内。解题思路这题其实借用了 354.俄罗斯套娃信封问题的思想。我们需要对这个二

2021-01-25 19:13:29 10

原创 300. 最长递增子序列(动态规划)

300. 最长递增子序列题目解题思路代码题目给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。提示:1 <= nums.length <= 2500-104 <= nums[i] <= 104进阶:你可以设计时间复杂度为 O(n2) 的解决方案吗?本解法已达到你能将算法的时间复杂度降低到

2021-01-25 17:55:35 10

原创 213. 打家劫舍 II(动态规划)

213. 打家劫舍 II题目解题思路代码题目你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额。提示:1 <= nums.length <= 1000 <= nums[i] <=

2021-01-24 16:52:47 26

原创 198. 打家劫舍(动态规划)

198. 打家劫舍题目解题思路代码题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。提示:0 <= nums.length <= 1000 <= nums[i] <= 400解题思路动态规划题目最主要的是找出状态转移方程

2021-01-24 15:58:43 41

原创 70. 爬楼梯(动态规划)

70. 爬楼梯题目解题思路代码题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。解题思路观察一下题目,其实这是一个斐波那契数列,但是稍微有点不同,斐波那契数列是F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*),本题是F(0)=0,F(1)=1, F(2)=2,F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)。直接就用最

2021-01-22 20:31:09 15

原创 677. 键值映射(Trie)

677. 键值映射题目解题思路代码题目实现一个 MapSum 类,支持两个方法,insert 和 sum:MapSum() 初始化 MapSum 对象void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。提示:1 <= ke

2021-01-21 21:05:21 10

原创 Mysql面试技术名词

面试技术名词回表覆盖索引最左匹配索引下推举例回表假如有两个B+树索引分别如下面的图:(1)id为主键,聚集索引,叶子节点存储行记录;(2)name为KEY,普通索引,叶子节点存储id值;  然后现在有一条sql语句select * from t where name='lisi';看看执行过程:如粉红色路径,需要扫码两遍索引树:(1)先通过普通索引定位到主键值id=5;(2)在通过聚集索引定位到行记录;这就是所谓的回表查询,就是还要回表查询一次。覆盖索引还是用上面的例子,

2021-01-21 20:03:52 13

原创 前端发送请求路径在后端找不到对应的controller

因为我后端路径写错了所以前端找不到对应的请求,然后我修改了后端的路劲。但是还是找不到。原因:我忘记重启后端项目了,我没有启动热部署,所以需要重启项目

2021-01-21 14:15:54 26

原创 写一个插入方法的时候总是空指针,但是明明有这个方法

要用Autowired,不能用@Reference,具体原理还不知道,以后再回头看看

2021-01-21 13:56:03 15

原创 Trie树(前缀树)

Trie树是什么Trie树的优缺点优点缺点是什么Trie树,又叫字典树、前缀树(Prefix Tree)、单词查找树 或 键树,是一种多叉树结构。如下图:从上图可以归纳出Trie树的基本性质:根节点不包含字符,除根节点外的每一个子节点都包含一个字符。从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。每个节点的所有子节点包含的字符互不相同。通常在实现的时候,会在节点结构中设置一个标志,用来标记该结点处是否构成一个单词(关键字)。Trie树把每个关键字保存在一条路径上,

2021-01-20 22:20:59 21

原创 208. 实现 Trie 前缀树(Trie)

@[toc](208. 实现 Trie (前缀树))题目实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。说明:你可以假设所有的输入都是由小写字母 a-z 构成的。保证所有输入均为非空字符串。解题思路我们要构建一个Trie,且题目说所有的输入都是由小写字母 a-z 构成的。所以我们只给给trie的children定义为一个长度为26的数组就可以了。再来看一下insert方法的实现:首先我们需要遍历要插入的这个单词,将它拆分成一

2021-01-20 22:14:47 10

原创 94. 二叉树的中序遍历(中序遍历)

94. 二叉树的中序遍历题目解题思路代码题目给定一个二叉树的根节点 root ,返回它的 中序 遍历。提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100解题思路简单 后序遍历。代码class Solution { List<Integer> res = new ArrayList<>(); public List<Integer> inorderTraversal(Tree

2021-01-20 20:35:25 10

原创 145. 二叉树的后序遍历(后序遍历)

145. 二叉树的后序遍历题目解题思路代码题目给定一个二叉树,返回它的 后序 遍历。解题思路简单,后序遍历代码class Solution { List<Integer> list=new ArrayList<>(); public List<Integer> postorderTraversal(TreeNode root) { if (root == null) { return l

2021-01-20 20:31:19 7

原创 144. 二叉树的前序遍历(前序遍历)

144. 二叉树的前序遍历题目解题思路代码题目给你二叉树的根节点 root ,返回它节点值的 前序 遍历。提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100解题思路很简单,前序遍历。代码class Solution { List<Integer> res=new ArrayList<>(); public List<Integer> preorderTraversal(Tree

2021-01-20 20:22:12 12

原创 JSR303

JSR303作用大概步骤因为以后要处理的异常很多,所以做一个统一的异常处理:@ControllerAdvice作用往往我们会在前端进行一些表单校验等等,来确保传递的值是合法的。但是有一些手段可以绕过前端表单校验,所以我们需要在后端对javaBean进行校验。这就是用的JSR303。大概步骤1)、给相关的实体类上添加校验注解。比如我们这次要校验brand,那么就要给brandEntity的属性增加校验注解BrandEntity中有这么一个属性,那我们就可以用@NotBlank来校验。 /**

2021-01-20 12:44:53 10

原创 513. 找树左下角的值(层级遍历)

513. 找树左下角的值(层级遍历)题目解题思路代码题目给定一个二叉树,在树的最后一行找到最左边的值。解题思路用层级遍历,维护一个变量firstNode来存放每一层的第一个节点。我们从左往右的层级便遍历,因为firstNode是在循环里面,也就是每一次循环,即每一层:都会更新一次firstNode。到最后一次更新,firstNode保存的就是最后一层的第一个值,又因为是从左往右层级遍历,所以firstNode最后存放的就是我们要的左下角的值。代码class Solution {

2021-01-16 23:12:34 19

原创 637. 二叉树的层平均值(层级遍历)

637. 二叉树的层平均值(层级遍历)题目解题思路代码题目给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。解题思路很容易想到要用层级遍历。关键点是要知道用queue.size()来获取该层有多少节点。然后用一个sum来保存和 ,进而求出平均值。代码class Solution { List<Double> list = new ArrayList<>(); public List<Double> averageOfLevels(T

2021-01-16 22:40:02 16

原创 671. 二叉树中第二小的节点(递归)

671. 二叉树中第二小的节点题目解题思路代码题目给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。更正式地说,root.val = min(root.left.val, root.right.val) 总成立。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。解题思路该题很容易想到遍历树,然后用set来保存。取set中第下标1即是第二小

2021-01-15 22:10:19 16

原创 上传到阿里云OSS的照片无法预览

今天用阿里云OSS帮助文档的方式去上传图片到OSS。虽然上传成功了。但是在OSS上无法预览。解决:换一种代码// Endpoint以杭州为例,其它Region请按实际情况填写。 String endpoint = "oss-cn-hangzhou.aliyuncs.com";// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 String accessKey

2021-01-15 11:17:46 82

原创 记录一下新建一个spring boot项目但是maven依赖下载慢

我清晰的记得我配过maven的阿里云镜像。但是下载依然慢。原来是没有在项目切换mvn,要记得切换成自己的。ps:如果没切换,用手机热点下载照样快

2021-01-15 10:32:46 22

原创 337. 打家劫舍 III(递归)

337. 打家劫舍 III题目解题思路代码题目在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。解题思路先把题目用一句话概括一下: 就是要间隔遍历。因为入口只有根节点,所以我们对于根节点来

2021-01-14 22:01:07 14

原创 开发商城系统遇到的问题

开发商城系统遇到的问题1、文件存储的问题2、文件上传问题1、文件存储的问题单体应用上传只需要简单的传到一个地方存储起来,以后要用的时候再从那个地方拿就可以了。但是分布式应用不行。分布式应用如果像下图一样,只存在一个地方。我们假如部署了三台服务器,第一次来到一号服务器,存放图片。下次如果访问的还是1号服务器,那当然可以拿到图片。但是由于负载均衡,来到2号服务器,那么就拿不到了。所以这种方式是行不通的。所以我们选择第三种方式。无论哪个服务器发起上传请求,最终都上传到一个文件存储系统,这个系统可以是自

2021-01-14 18:31:21 40 1

原创 前端传的json数据未乱码,但是插入到数据库就是问号

今天前端给往数据库插入数据,从前端拿到的json编码是好的。但是插入到数据库中一看就是??。解决:给数据库的连接加上?useUnicode=true&characterEncoding=UTF-8

2021-01-14 12:26:07 15

原创 687. 最长同值路径(递归)

文章目录题目解题思路代码题目给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。注意:两个节点之间的路径长度由它们之间的边数表示。解题思路这题虽然题目说可不经过根节点,但是我们就以根节点出发。我们只需要找到根节点的左子树的 相同值的 最长路径。和右子树的…。然后再把二者的长度加起来。为了实现这个功能我们就需要一个辅助函数。当然,如果类似于[1,2,3]这样的树,那么用辅助函数返回的左子树的和右子树的相同值最大路径就是0.即结果也是0.并不会

2021-01-14 00:10:40 19 1

原创 404. 左叶子之和(递归)

文章目录题目解题思路代码题目计算给定二叉树的所有左叶子之和。解题思路第一步:找到叶子节点第二步:判断叶子节点是不是左叶子节点。可以给help参数加一个isLeft来标识。当递归的是左子树的时候那么就是true,右子树为false代码class Solution { int sum=0; public int sumOfLeftLeaves(TreeNode root) { if(root==null){ return sum;

2021-01-13 22:51:28 15

原创 分布式锁一步步的推导

2、知道分布式锁吗?有哪些实现方案? 你谈谈对redis分布式锁的理解Base案例1、建Module2、改POM<?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" xsi:schemaLocation="http://maven

2021-01-12 19:54:06 17

原创 Redis写入数据但是可视化工具看不到

今天redis在客户端写入数据,但是可视化工具看不到,用可视化工具写入数据,客户端读取不到。解决:把redis版本换成5.0.0

2021-01-12 16:44:50 59

原创 Spring循环依赖源码Debug

Spring循环依赖源码Debug3大Map和四大方法,总体相关对象A/B两对象在三级缓存中的迁移说明Debug技巧首先我们要搞清楚两个概念:实例化/初始化实例化: 堆内存中申请一块内存空间,类似租赁好房子,自己的家具东西还没有搬家进去初始化属性填充 :完成属性的各种赋值,类似装修、家电家具进场3大Map和四大方法,总体相关对象三级缓存+四大方法①三级缓存:第一层singletonObjects存放的是已经初始化好了的Bean。第二层earlySingletonObjects存放的是实例化

2021-01-11 21:54:46 21

原创 springboot测试类Error creating bean with name

今天用测试类的时候报错:font color=red>Error creating bean with name xxx原因: 我把@Service加在了接口上,其实应该加在实现类上。@Service注解是标注在实现类上的,因为@Service是把spring容器中的bean进行实例化,也就是等同于new操作,只有实现类是可以进行new实例化的,而接口则不能,所以是加在实现类上的。另外要记得引入,否则会报Failed to load ApplicationContext &

2021-01-10 15:19:39 42

原创 AQS详解

AQS详解前置知识可重入锁Synchronized的重入的实现机理LockSupport线程等待唤醒机制(wait/notify)Object类中的wait和notify方法实现线程等待和唤醒Condition接口中的await后signal方法实现线程的等待和唤醒LockSupport类中的park等待和unpark唤醒重点说明这块儿的面试题前置知识可重入锁可重入锁又名递归锁是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提,锁对象得是同一个对象),不会因为之前已经获

2021-01-09 10:38:28 129

原创 101. 对称二叉树(递归)

101. 对称二叉树题目解题思路代码题目给定一个二叉树,检查它是否是镜像对称的。解题思路 这题要看是不是镜像,我们可以这么想,何为镜像,就是左子树何右子树对称,我们来举个例子来看看 到底对称的条件是什么。 1 / \ 2 2 / \ / \

2021-01-05 21:30:54 16 1

原创 GitHub常见使用方法

GitHub常见使用方法常用词含义in关键词限制搜索范围stars或fork数量关键词去查找awesome加强搜索高亮显示某一行代码项目内搜索搜索某个地区内大佬常用词含义watch:会持续收到该项目的动态fork:复制某个项目到自己的GitHub仓库star:点赞clone:将项目下载至本地follow:关注作者in关键词限制搜索范围公式:xxx关键词 in:name或description或readmexxx in:name 项目名包含xxxxxx in:description 项目描

2021-01-05 19:36:00 10

Mysql调优.xmind

学习Mysql调优时候所画的思维导图

2021-01-15

JVM底层原理课件PPT

JVM视屏教程对应的PPT课件。发布在这里保存一下。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2020-09-11

FTP服务器配置步骤详解.pdf

此资源是为了对应我的那篇博客,解决FTP服务搭建的详细问题,作为一个入门的教程来上传的。里面记载了在Linux服务器下如何搭建FTP服务的详细步骤,以及常见问题的解决方法。

2020-05-27

分类专栏上限?

发表于 2020-11-12 最后回复 2020-11-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除