自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 电商项目优化测试

电商项目性能优化测试:在第一次测试中,20000个请求的响应结果:一、第一种优化方案,让product服务占更多的内存。二、考虑影响性能的原因有哪些?  数据库、应用程序(代码)、中间件(nginx、网关、tomcat)、网络IO、和操作系统方面。  首先考虑自己的应用程序是CPU密集型还是IO密集型。    CPU密集型: 可以增加多台服务器来并行处理请求。    IO密集型: 换固态硬盘、加内存条、使用各种缓存技术。三、调优出发点:JVM  fullGC要比YoungGC慢1

2021-08-26 23:04:33 470

原创 项目中表单校验(前端和后台)

项目中表单校验(前端和后台)对于该项目而言,例如想要新增商品条目,需要对每一个字段名进行校验保证系统的数据安全。首先需要进行前端校验,即通过element-ui提供的方式进行前端输入数据的校验。但是系统中接收到的请求有可能不是直接在前端表单中的输入,例如使用postman来模拟新增请求时。因此在前端校验后,还需要在后台进行校验。后台校验使用的是JSR303校验方法。该方法主要是通过给实体类中对应的字段添加注解的方式如@NotNull(message=“”,groups={AddGoup.c

2021-08-18 19:44:43 868

原创 商城利用阿里云文件上传

商城文件上传:由于采用的是微服务架构,因此可能出现浏览器通过负载均衡找到的应用服务器中,没有保存所需要的文件。因此,解决方法为:将文件都保存到阿里云服务器中,然后文件的上传和下载都在阿里云仓库中下载。采用图中所示方式进行上传(不是先将文件传到应用服务器,再传到阿里云),即只需要用户通过浏览器在应用服务器中获取到阿里云 的policy签名,然后将policy签名和文件直接上传到服务器。\n在实现的过程中,由于考虑到这种签名会有很多功能用的到,因此新建了一个微服务third-party,专门用于生

2021-08-17 23:29:42 198

转载 springboot中themleaf访问html总是报404错误!

springboot中themleaf访问html总是报404错误!SpringBoot 使用thymeleaf 跳转页面时,总是提示404找不到页面Thymeleaf的使用和版本关系很大,如果路径配置正确却一直无法正常返回,可能就是版本错误导致。想构建简单页面跳转,正常跳转index.html,404和500跳转到专门的页面,配置正确,路径也正确,controller的方法也能访问到,但是一直无法正常跳转,页面报404.修改版本后,可以正常访问。修改前:复制代码@Controllerpubl

2021-07-12 15:31:52 1905

原创 数据库MySQL-循环结构

数据库MySQL-循环结构#二、循环结构分类:while、loop、repeat循环控制:iterate类似于 continue,继续结束本次循环,继续下一次leave 类似于break,跳出,结束当前所在的循环*/#1、while语法:【标签:】while 循环条件 do 循环体;end while【标签】;*/#2、loop语法:【标签:】loop 循环体;end loop 【标签】;可以用来模拟简单的死循环*/#3、repeat语法:【标签:

2021-07-02 09:28:24 842

原创 数据库MySQL-分支结构

数据库MySQL-分支结构#流程控制语句顺序结构:程序从上往下依次执行分支结构:程序从两条或多条路径中选择一条去执行循环结构:程序在满足一定条件的基础上,重复执行一段代码。*/#一、分支结构#1、if函数功能:实现简单的双分支语法:IF(表达式1,表达式2,表达式3)执行顺序:如果表达式1成立,则IF函数返回表达式2的值,否则返回表达式3的值应用:任何地方#2、case结构情况1:类似于java中的switch语句,一般用于实现等值判断语法: CASE 变量

2021-07-02 09:24:39 801

原创 数据库MySQL-函数

数据库MySQL-函数函数含义:一组预先编译好的sql语句的集合,理解成批处理语句。好处:1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率函数和存储过程的区别:存储过程:可以有0个返回,也可以有多个返回。适合做批量的插入、批量的更新。函数:只能有一个返回,适合做处理数据后返回一个结果。*/一、创建语法 CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型 BEGIN 函数体 END

2021-07-01 13:37:07 80

原创 数据库MySQL-存储过程

数据库MySQL-存储过程存储过程和函数/存储过程和函数:类似于java中的方法好处:1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率存储过程/含义:一组预先编译好的sql语句的集合,理解成批处理语句。*/#一、创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END注意:1、参数列表包含三部分参数模式 参数名 参数类型举例:IN stuname VARC

2021-06-30 14:27:22 62

原创 数据库MySQL-变量

数据库MySQL-变量#变量系统变量: 全局变量 会话变量自定义变量: 用户变量 局部变量*/一、系统变量说明:变量由系统提供,不是用户定义,属于服务器层面使用的语法:1、查看所有的系统变量SHOW GLOBAL|【SESSION】 VARIABLES2、查看满足条件的部分系统变量SHOW GLOBAL|【SESSION】 variable LIKE '';3、查看指定的某个系统变量的值SELECT @@global|【SESSION】.系统变量名;

2021-06-29 14:35:14 76

原创 数据库MySQL-视图

数据库MySQL-视图#视图含义:虚拟表,和普通表一样使用,行和列的数据来自定义视图的查询中使用的表,并且实在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。mysql 5.1版本出现的新特性,是通过表动态生成的数据好处:重用sql语句简化复杂的sql操作,不必知道它的查询细节保护数据,提高安全性 创建关键字 是否实际占用物理空间 使用视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改表 cre

2021-06-28 09:45:09 69

原创 数据库MySQL-TCL事务控制语言

数据库MySQL-TCL事务控制语言TCLtransaction control language 事务控制语言事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。事务的ACID(acid)属性 1、原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 2、一致性(Consistency) 事务必须使数据库从一个一致性状态变换到另外一个一致性状态。 3、隔离性(Isolation)

2021-06-27 12:00:28 129

原创 数据库DDL语言

数据库DDL语言一、库的管理1、库的创建语法:create database 【if not exists】库名;*/#案例:创建库BooksCREATE DATABASE IF NOT EXISTS books;2、库的修改(一般不修改)RENAME DATABASE books TO 新库名;#更改库的字符集ALTER DATABASE books CHARACTER SET gbk;3、库的删除DROP DATABASE IF EXISTS books;二、表的管

2021-06-26 11:45:52 105

原创 数据库MySQL-插入、修改、删除

数据库MySQL-插入、修改、删除一、插入语句(方式一)语法:insert into 表名(列名,...) values(值1,...);1、插入的值的类型要与列的类型一致或兼容SELECT * FROM beauty;INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)VALUES(13,'唐一新','女','1990-4-23','1898888888',NULL,2);2、

2021-06-25 10:43:43 400

原创 LeetCode 153. 寻找旋转排序数组中的最小值

LeetCode 153. 寻找旋转排序数组中的最小值题解:可以采用二分查找的方式。区间的左端点为 L,右端点为R。中间点为mid。我们将 nums[mid] 与 nums【R】比较。如果,nums【mid】 < nums【R】,则nums【mid】为最小值右边的元素,因此忽略右半部分,如果nums【mid】 > nums【R】,则nums【mid】 为最小值左边的元素,忽略左半部分。class Solution { public int findMin(int[] nums

2021-06-24 10:36:23 70

原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)

LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置。题解:本题采用二分查找,首先查找开始位置,再查找结束位置。class Solution { public int[] searchRange(int[] nums, int target) { int n = nums.length; int[] ans = new int[2]; ans[0] = -1; ans[1] = -1;

2021-06-23 10:02:09 60

原创 LeetCode 81. 搜索旋转排序数组 II(二分查找)

LeetCode 81. 搜索旋转排序数组 II(二分查找)题解:在本题中,可以采用二分查找的思想,选择一个中间值,将数组分为[l,mid][mid + 1,r]两部分,如果没有重复的数字的话,这两部分中必然有一部分有序。此时在有序的部分判断。例如:假设区间[l, mid] 有序,如果 target >= nums[l] && target < nums[mid]。则更新右边界为 r = mid - 1,否则的话更新l = mid + 1.对于有重复数字的情况,

2021-06-22 10:44:58 123

原创 解决Maven资源导出时,java源代码文件中的xml文件不能编译到target

解决Maven资源导出时,java源代码文件中的xml文件不能编译到target文件下 <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>*

2021-06-21 16:23:34 201

原创 org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 18; 1 字节的 UTF-8 序列的字节 1 无效。

org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 18; 1 字节的 UTF-8 序列的字节 1 无效。将:<?xml version="1.0" encoding="UTF-8" ?>换成<?xml version="1.0" encoding="UTF8" ?>

2021-06-21 16:20:54 958 3

转载 LeetCode 483. 最小好进制

LeetCode 483. 最小好进制对于给定的整数 n, 如果n的k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个好进制。以字符串的形式给出 n, 以字符串的形式返回 n 的最小好进制。*题解:代码:class Solution { public String smallestGoodBase(String n) { long val = Long.parseLong(n); int mMax = (int)Mat

2021-06-21 10:43:07 84

转载 web.xml顺序不对错误(The content of element type “web-app“ must match “)

web.xml顺序不对错误如果web.xml提示以下错误:The content of element type “web-app” must match “(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,er

2021-06-20 17:16:33 269

原创 LeetCode 74. 搜索二维矩阵

LeetCode 74. 搜索二维矩阵编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。题解:采用二分查找,在查找的过程中,进行坐标变换,例如对于mid,他所对应的行为mid /n .列为mid % n。其中,n为矩阵总列数。class Solution { public boolean searchMatrix(int[][] matrix, int target) {

2021-06-20 14:03:15 63

原创 数据库MySQL-分页、联合查询。

数据库MySQL-分页、联合查询。#分页查询应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法: select 查询列表 #7 from 表 #1 【join type】 join 表2 #2 on 连接条件 #3 where 筛选条件 #4 group by 分组字段 #5 having 分组后的筛选 #6 order by 排序的字段 #8 limit 【offset】,size; #9 offset要显示条目的起始索引(起始索引从0开始) s

2021-06-19 16:43:16 80

原创 数据库MySQL-子查询

数据库MySQL-子查询#进阶7:子查询含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询分类:按子查询出现的位置: select后边 仅仅支持标量子查询 from后面 表子查询 where或having后面(*) 标量子查询 列子查询 行子查询 exists后面(相关子查询) 表子查询按结果集的行列数不同: 标量子查询(结果集只有一行一列) 列子查询(结果集中只有一列多行) 行子查询(结果集有一行多列)

2021-06-18 12:17:10 149

原创 LeetCode 778. 水位上升的泳池中游泳

LeetCode 778. 水位上升的泳池中游泳在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。现在开始下雨了。当时间为 t 时,此时雨水导致水池中任意位置的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。假定你可以瞬间移动无限距离,也就是默认在方格内部游动是不耗时的。当然,在你游泳的时候你必须待在坐标方格里面。你从坐标方格的左上平台 (0,0) 出发。最少耗时多久你才能到达坐标

2021-06-17 13:23:34 69

原创 数据库MySQL-连接查询

数据库MySQL-连接查询含义:又称为多表查询,当查询的字段来自于多个表时,用到连接查询。笛卡尔乘积现象:表1 有m行,表2有n行, 结果有m*n行。如:select name, boyName from boys,beauty;发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类: 按年代分类:sql92标准:仅仅支持内连接,sql99标准(推荐):支持内连接+外连接(左外和右外)+交叉连接 按功能分类: 内连接: 等值连接 非等值连接 自连接

2021-06-16 13:42:39 113

原创 LeetCode 494. 目标和

LeetCode 494. 目标和给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。题解:方法一:可以采用回溯的方式,这样时间复杂度为O(2n)O(2^n)O(2n).方法二:采用动

2021-06-15 10:51:11 121

原创 数据库MySQL-分组查询

数据库MySQL-分组查询分组查询语法:select 分组函数,列(要求出现在group by的后面) from 表 【where 筛选条件】 group by 分组的列表 【order by 子句】注意: 查询列表必须特殊,要求是分组函数和group by后出现的字段特点: 1、分组查询中的筛选条件分为两类 数据源 位置 关键字 分组前筛选 原始表 group by子句的前面 where 分组后筛选 分组后的结果集

2021-06-14 10:41:31 234

原创 数据库MySQL常见函数

数据库MySQL常见函数:概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名。好处:1.隐藏了实现细节 2.提高了代码的重用性。调用:select 函数名(实参列表) [from 表];特点:叫什么?(函数名) 干什么(函数功能)。分类:1.单行函数如concat、length、ifnull等2.分组函数功能:做统计使用,又称为统计函数、聚合函数、组函数。单行函数-字符函数#案例:姓名中首字符大写,其他字符小写,然后用_拼接,显示出来SELECT

2021-06-13 18:59:03 126 2

原创 LeetCode 993. 二叉树的堂兄弟节点

LeetCode 993. 二叉树的堂兄弟节点在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。题解:可以采用层次遍历的方式,在遍历的过程中,记录x和y节点的深度与父节点、。/** * Definiti

2021-06-12 11:34:44 94

原创 LeetCode 938. 二叉搜索树的范围和

938. 二叉搜索树的范围和给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。题解:后序遍历二叉树,遇到值在low和high之间的,就加在ans上。下面给出非递归的后序遍历。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * Tre

2021-06-11 09:56:51 38

原创 LeetCode 897. 递增顺序搜索树

LeetCode 897. 递增顺序搜索树给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。题解:对于本题而言,可以采用列表保存中序遍历的结果来建树,这样的话需要二外的列表空间。下面的代码采用在中序遍历过程中改变节点指向的方式,优化了空间复杂度。/** * Definition for a binary tree node. * public class TreeNode { * in

2021-06-09 10:30:57 260

原创 数据库-分组查询

数据库-分组查询#分组查询/*语法:select 分组函数,列(要求出现在group by的后面) from 表 【where 筛选条件】 group by 分组的列表 【order by 子句】注意: 查询列表必须特殊,要求是分组函数和group by后出现的字段特点: 1、分组查询中的筛选条件分为两类 数据源 位置 关键字 分组前筛选 原始表 group by子句的前面 where 分组后筛选 分组后的结果集

2021-06-08 15:06:46 669

原创 数据库-排序查询

数据库-排序查询• 语法:select 查询列表 from 表 【where 筛选条件】 order by 排序列表 【asc|desc】 • 特点: 1.asc代表的是升序,desc代表的是降序。 如果不写,默认是升序。 2.order by子句中可以支持单个字段、多个字段、表达式、函数、别名。 3.order by子句一般是放在查询语句的最后面,但limit子句除外。#案例1:查询员工信息,要求工资从高到低排序。SELECT * FR

2021-06-08 15:04:35 510

原创 LeetCode 701. 二叉搜索树中的插入操作

LeetCode 701. 二叉搜索树中的插入操作给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。题解:方法一:递归的方式求解,根据平衡二叉树的性质,比节点小的在左边,比节点大的在右边。/** * Definition for a binary tree node. * pu

2021-06-07 12:58:39 79

原创 LeetCode 684. 冗余连接

LeetCode 684. 冗余连接在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v] 应满

2021-06-06 10:40:20 115

原创 LeetCode 530. 二叉搜索树的最小绝对差

LeetCode 530. 二叉搜索树的最小绝对差给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。题解:因为二叉搜索树的中序遍历是递增序列,因此最小的绝对值之差,一定在中序遍历的顺序中相邻,用pre保存中序遍历顺序中,上一节点的数值。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre

2021-06-05 10:37:30 83

原创 LeetCode 514. 自由之路

LeetCode 514. 自由之路电子游戏“辐射4”中,任务“通向自由”要求玩家到达名为“Freedom Trail Ring”的金属表盘,并使用表盘拼写特定关键词才能开门。给定一个字符串 ring,表示刻在外环上的编码;给定另一个字符串 key,表示需要拼写的关键词。您需要算出能够拼写关键词中所有字符的最少步数。最初,ring 的第一个字符与12:00方向对齐。您需要顺时针或逆时针旋转 ring 以使 key 的一个字符在 12:00 方向对齐,然后按下中心按钮,以此逐个拼写完 key 中的所有字

2021-06-04 10:50:59 105

原创 数据库-条件查询

数据库-条件查询• 进阶2:条件查询• 语法: ◇ select 查询列表 //最后查询列表 from 表名 //先看有没有表 where 筛选条件; //然后筛选条件• 分类: 一、按条件表达式筛选 条件运算符:> < = != <> >= <= 二、按逻辑表达式筛选 逻辑运算符: && || ! and or not 三

2021-06-03 22:43:49 666

原创 数据库(MySQL)-基础查询

数据库(MySQL)-基础查询引入数据库数据库的相关概念• 数据库的好处: 1.实现数据持久化 2.使用完整的管理系统统一管理,易于查询。 1). DB:数据库(database):存储数据的“仓库”,它保存了一系列有组织的数据。 2). DBMS:数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器。 常见的DBMS:MySQL、Oracle、DB2、SqlServer等。 3). SQL:结构化查询

2021-06-02 15:12:28 66

原创 LeetCode 222. 完全二叉树的节点个数

LeetCode 222. 完全二叉树的节点个数给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^h 个节点。题解:方法一:可以通过遍历的方式求解,时间复杂度为O(n)方法二:由完全二叉树的性质可以得知,最后一层的最左侧节点一定不为空,因此可以设置指针node一直往左走,来计算完全二叉树的层数

2021-06-02 10:34:49 96

空空如也

空空如也

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

TA关注的人

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