Java
Zhou_run
一名默默无闻的码农
展开
-
CentOS7下载Git并集成Coding
CentOS7下载Git并集成Coding1.安装Git方法一(Yum)版本旧,简单直接:yum install git 方法二(Git)安装所需安装包yum install curl-devel expat-devel gettext-devel openssl-devel zlib-develyum install gcc-c++ perl-ExtUtils-MakeMaker下载Gitwget https://www.kernel.org/pub/software/scm/原创 2021-05-27 01:08:42 · 168 阅读 · 0 评论 -
Centos7 上安装 FastDFS
Centos7 上安装 FastDFS第一步:找到需要下载的fastdfs插件fastdfs-5.11.tar.gzfastdfs-nginx-module-1.20.tar.gzlibfastcommon-1.0.39.tar.gznginx-1.15.8.tar.gz第二步:把他们移动到/usr/local 目录并解压tar -zxvf fastdfs-5.11.tar.gztar -zxvf fastdfs-nginx-module-1.20.tar.gztar -zxvf l原创 2021-05-27 01:00:49 · 390 阅读 · 0 评论 -
最小的k个数 - Java
最小的k个数 - Java题目描述给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组示例1输入[4,5,1,6,2,7,3,8],4 返回值[1,2,3,4]方法一(排序后,再取前k个值)这个没什么好讲的,肯定不是最优解。import java.util.*;public class Solution { public ArrayList<Inte原创 2021-04-19 19:58:11 · 121 阅读 · 0 评论 -
二叉搜索树与双向链表 - Java
二叉搜索树与双向链表 - Java题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}思路二叉搜索树的中序遍历是有原创 2021-04-19 00:05:21 · 164 阅读 · 0 评论 -
栈的压入、弹出序列 - Java
栈的压入、弹出序列 - Java题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)输入[1,2,3,4,5],[4,3,5,1,2]返回值false思路看到题目思考一下解题思路,哦嚯,实例通过了!自信满满上去提交,结果就只是通过了示原创 2021-04-17 16:53:07 · 71 阅读 · 0 评论 -
反转链表 - Java
反转链表 - Java题目描述输入一个链表,反转链表后,输出新链表的表头。示例1输入{1,2,3}返回值{3,2,1}思路这道题花费了我蛮长时间的,刚开始想用新建一个链表每次转换前后顺序实现,后来发现这种做法忽略了修改的也是原本链表,导致死循环。(当然用栈做这个思路一开始就想到了,不过没必要,因为更优的解法肯定存在)看完题解发现跟我的做法有点相似,不过是使用了两个指针。大家看着图对着代码一下子就懂了,总的来说就是pre往后走,head也往后走。让a->next = nul原创 2021-03-26 20:58:55 · 133 阅读 · 0 评论 -
数值的整数方次 - Java
数值的整数方次 - Java题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0示例1输入2,3返回值8.00000思路:解题方法就是很简单的累乘(数学算法),但是需要注意指数有可能是负数,也有可能是0;实现Implementationpublic class Solution { public double Power(double base, int expone原创 2021-03-25 13:43:41 · 152 阅读 · 0 评论 -
链表中倒数第k个结点 - Java
链表中倒数第k个结点 - Java题目描述输入一个链表,输出该链表中倒数第k个结点。如果该链表长度小于k,请返回空。输入{1,2,3,4,5},1 返回值{5}思路看到这题,脑子就会不由自主想到栈,先把链表全部压入栈,再计数出栈就能解决。相信聪明如在座各位也能想到。需要想的只是还有没有更优解。实现Implementation方法一(栈实现)import java.util.*;public class Solution { /** * 代码中的类名、方法名、参原创 2021-03-25 13:42:19 · 107 阅读 · 0 评论 -
二进制中1的个数 - Java
二进制中1的个数 - Java题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。输入10返回值2思路:看到这种题,第一时间想到的就是规律个位数中,偶数需要一位1,奇数需要两位1(奇数的二进制最后一位必须是1)十位数中,偶数需要两位1,奇数需要三位1…后面才发现并不是这样,这个规律不行,哦嚯,完蛋,思路全无。看了题解,wcao,还能这样解啊!一个整数只要不为0,二进制就存在1;如果把这个数减1,那么原来整数最右边的1就变成0,而右边的0又会变成原创 2021-03-24 11:40:26 · 165 阅读 · 0 评论 -
矩形覆盖 - Java
矩形覆盖 - Java题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:输入4返回值5思路:这题实际上跟前道题《跳台阶》一样,本质都是斐波那契数列,不清晰的去看看我这篇:斐波那契数列(Fibonacci) - 这就是算法吗?爱了爱了实现Implementationpublic class Solution { public int JumpFloo原创 2021-03-24 09:51:52 · 56 阅读 · 0 评论 -
跳台阶 - Java
跳台阶 - Java题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。这题本质上就是斐波那契数列。解法一样方法一(递归)public class Solution { public int JumpFloor(int target) { if(target <= 3){ return target; } return JumpFloor(原创 2021-03-23 19:51:40 · 133 阅读 · 0 评论 -
重建二叉树 - Java
重建二叉树 - Java做这题一定要知道二叉树的几种遍历,不懂得可以看我的上一篇博客:一起学习二叉树的几种遍历题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。输入[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值{1,2,5,3,4,6,7}思路:根据题目的要求,输入一个二叉原创 2021-03-23 17:23:17 · 210 阅读 · 0 评论 -
一起学习二叉树的几种遍历
一起学习二叉树的几种遍历深度遍历包含(前序,中序,后序)三种遍历方式,广度遍历就是常说的层次遍历。四种主要的遍历思想:前序遍历:根结点 —> 左子树 —> 右子树【根左右】中序遍历:左子树—> 根结点 —> 右子树【左根右】后序遍历:左子树 —> 右子树 —> 根结点【左右根】层次遍历:只需按层次遍历即可【左右】图片来源:(网图)前序遍历:1 2 4 5 7 8 3 6中序遍历:4 2 7 5 8 1 3 6后序遍历:原创 2021-03-23 15:20:39 · 309 阅读 · 0 评论 -
二叉搜索树的第k个结点 - Java
二叉搜索树的第k个结点 - Java题目描述给定一棵二叉搜索树,请找出其中的第k小的TreeNode结点。输入{5,3,7,2,4,6,8},3返回值{4}说明按结点数值大小顺序第三小结点的值为4 思路首先先了解二叉搜索树的定义,二叉搜索树又称二叉查找树,二叉排序树它是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(原创 2021-03-23 02:52:00 · 279 阅读 · 0 评论 -
数组中重复的数字 - Java
数组中重复的数字 - Java题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1示例1输入[2,3,1,0,2,5,3]返回值2或3看完题目就知道怎么做的一道题(因为有在LeeCode做过,当时看题解也是惊为天人),但是做出来后总是不过,显示超出范围原创 2021-03-20 23:06:53 · 131 阅读 · 0 评论 -
不用加减乘除做加法 - Java
不用加减乘除做加法 - Java题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。输入1,2返回值31、一位数加法普通加法异或1 + 1 = 01 ^ 1 = 0(错误)1 + 0 = 11 ^ 0 = 1(正确)0 + 1 = 10 ^ 1 = 1(正确)0 + 0 = 00 ^ 0 = 0(正确)可以看到在一位数的运算中,会出现进位丢失的问题。而其他都是正常的。那么怎么解决进位的问题呢?原创 2021-03-17 12:36:43 · 93 阅读 · 0 评论 -
平衡二叉树 - Java
平衡二叉树 - java题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。示例1输入{1,2,3,4,5,6,7}返回值true平衡二叉树的左右子树也是平衡二叉树,那么所谓平衡就是左右子树的高度差不超过1.我们只需要递归每个节点,判断子树平衡(左右子树的高度差不原创 2021-03-17 11:49:21 · 96 阅读 · 0 评论 -
二叉树的深度 - Java
二叉树的深度题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入{1,2,3,4,5,#,6,#,#,7}返回值4一看到题目其实我就想到要用递归了,但是一直想怎么也想不出来。真的,打代码最忌空想,其实你开始敲,思路就慢慢出来了。以后真就要改掉这个坏习惯。方法一(递归,代码量很少,最重要的是解决思路)/**public class TreeNode { int val = 0; TreeNo原创 2021-03-17 11:28:44 · 113 阅读 · 0 评论 -
第一个只出现一次的字符 - Java
第一个只出现一次的字符题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)输入"google"返回值4第一时候都会想到暴力解法,全部遍历一遍出现次数。但是复杂度会很高。在自己做了一遍而且思考后,我看完题解其实还不是特别懂,卡在了arr[‘字符’]这块,然后我就去Idea过一遍。然后就是perfect!尽管解不出来,看了题解就没有我琢磨不透的…这就是我女朋友常原创 2021-03-16 15:25:29 · 112 阅读 · 0 评论 -
连续子数组得最大和 - Java
连续子数组得最大和题目描述输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n).示例1输入[1,-2,3,10,-4,7,2,-5]返回值18说明输入的数组为{1,-2,3,10,—4,7,2,一5},和最大的子数组为{3,10,一4,7,2},因此输出为该子数组的和 18。 思路有了只要左边得负数大于左边得正数,就从负数右边开始。能懂我意思吧??想想这样一个数组{3,4,-8,10,1,4,3},现原创 2021-03-12 17:09:44 · 169 阅读 · 0 评论 -
数组中出现次数超过一半的数字 - Java
数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。输入[1,2,3,2,2,2,5,4,2]返回值2看到代码直觉就是用map做,遍历存放数值和出现次数。没多大困难可以做出来,但是占用内存也很高啊。想点办法优化。方法一(easy,easy。不会吧不会吧,你不会做不出来吧)import java.原创 2021-03-12 16:12:42 · 146 阅读 · 0 评论 -
二叉树镜像 - Java
二叉树镜像 - Java题目描述操作给定的二叉树,将其变换为源二叉树的镜像。比如: 源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5示例1输入{8,6,10,5,7,9,原创 2021-03-11 17:25:09 · 109 阅读 · 0 评论 -
合并两个排序的链表 - Java
合并两个排序的链表 - Java题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入{1,3,5},{2,4,6}返回值{1,2,3,4,5,6}其实看了题目不太懂的…看完题解就秒懂了。自己写一次过。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val;原创 2021-03-11 16:37:12 · 84 阅读 · 0 评论 -
变态跳台阶 - Java
变态跳台阶 - Java一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。输入: 3 返回: 4第一眼没看出来,但是直觉告诉我这用公式能算出来。看了题解醍醐灌顶,这不过是斐波那契数列得变种!!易知 f(n)=f(n-1)+f(n-2)+……f(1)f(n-1)=f(n-2)+……f(1)两式相减得f(n)=2f(n-1)public class Solution { public int jumpFloorII(原创 2021-03-10 21:21:04 · 87 阅读 · 0 评论 -
用两个栈实现队列 -Java实现
用两个栈实现队列还好还好,一次过,击败80%题解(用的是牛客解题思路)1. 分析队列的特性是:“先入先出”,栈的特性是:“先入后出”当我们向模拟的队列插入数 a,b,c 时,假设插入的是 stack1,此时的栈情况为:栈 stack1:{a,b,c}栈 stack2:{}当需要弹出一个数,根据队列的"先进先出"原则,a 先进入,则 a 应该先弹出。但是此时 a 在 stack1 的最下面,将 stack1 中全部元素逐个弹出压入 stack2,现在可以正确的从 stack2 中弹出 a,原创 2021-03-09 16:42:38 · 171 阅读 · 1 评论 -
斐波那契数列(Fibonacci) - 这就是算法吗?爱了爱了
斐波那契数列(Fibonacci)今天开始做牛客的剑指Offie,一看到斐波那契我就想到递归,是它是它就是它,然后我就满怀期待地写下了下面地代码。ok,没问题,一次性过。然而,我滴老天鹅,才击败30%的人。科普:斐波那契数列(Fibonacci sequence),又称黄金分割数列。指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)方法一(普通,我这个彩笔都能一下子想出来的)public class S原创 2021-03-09 15:53:32 · 499 阅读 · 1 评论 -
冒泡排序算法(BubbleSort)
快速排序算法(QuickSort)冒泡排序以其“在排序过程中相邻元素不断交换,一些元素慢慢被换到最后,看起来就像是元素在冒泡一样”而得名,它是最简单的一种排序算法,通常被用来对于计算机程序设计入门算法讲解。Definition该算法的实现分以下几步:每次从头开始依次比较相邻的两个元素如果后面一个元素比前一个要小,说明顺序不对,则将它们交换循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,不断地重复以上两个过程,直到全部有序例如有一需要排序的数组为:5,8,6,3,9,2,1,7(从原创 2021-03-08 16:49:25 · 514 阅读 · 0 评论 -
快速排序算法
快速排序算法(QuickSort)最近开始重新学习算法,先从快速排序开始。Definition该算法的实现分以下几步:在排序的数组中选择一个基准数(通常是第一个)将数组中小于基准数的移到基准数左边,大于基准数的移到右边对于基准数左右两边的数组,不断地重复以上两个过程,直到全部有序例如有一需要排序的数组为:23,45,17,11,13,89,72,26,3,17,11,13(从小到大排序):将数组第一个数23赋给temp变量,指针 i 指向数组第一个元素,指针 j 指向数组最后一个元素原创 2021-03-08 14:38:17 · 184 阅读 · 3 评论 -
映客2020.12.16一面面经
实力还是不够啊啊啊啊啊,还是得继续学习。面完感觉知识面还是不够广,还有一些名词没听过。继续努力拿offer吧,加油加油。hashmap多线程下的安全问题?(hash冲突和扩容时优化)你了解哪些锁?TCP工作在哪一层?TCP协议和UDP协议的区别?MYSQL隔离级别?怎样优化mysql查询速度?线程和进程的区别?进程之间怎么通信?管道怎么工作?LRU算法?虚拟内存有什么作用?希望能对大家有帮助,砥砺前行。...原创 2020-12-16 16:04:35 · 128 阅读 · 1 评论 -
JAVA设计模式 - 装饰者(Decorator)
装饰者(Decorator)从名字上看“装饰”,就是让被装饰者更加丰富,即为对象动态添加功能。Definition为对象动态的添加功能,使用装饰着模式生成子类的方法让功能的扩充现得更灵活。设计的初衷:回想一下在我们以前的学习中如何去拓展一个功能,答案是:继承。但是当需要扩展的子类很多的时候,继承就会变得十分复杂。Implementation同样用Iphone11和12来做例子。 购买Iphone12不会赠送充电器,然而以前都是会附带有充电器的,这时候厂商就有必要支持动态添加随机赠送配件(这是继承原创 2020-12-15 14:50:59 · 201 阅读 · 1 评论 -
JAVA设计模式 - 适配器(Adapter)
适配器(Adapter)我们学习一个模式,首先从名字理解。生活中常见的适配器就是电源适配器。作用是将电压,电流转换成电器需要的电压电流。我们只需要记住一句话,适配器就是把类接口转换成另一个用户需要的接口(转换接口)。在iphone11,iphone12拥有不同的通信技术。现在想让11调用5G信号接口,就给它加上一个适配器。public interface Iphone12 { void communicateBy5G();}public interface Iphone11 {原创 2020-12-14 21:17:37 · 172 阅读 · 0 评论 -
JAVA设计模式 - 抽象工厂(Abstract Factory)
抽象工厂(Abstract Factory)前面我们说了工厂模式,抽象工厂相较于工厂模式,突出了“家族”的概念。在针对每个产品族都提供一个接口,可以创建一个产品族里的多个对象。我又举个栗子,假设随着手机市场的逐步壮大,苹果的客户有部分流向华为,小米等品牌。为了留住客户,高层决定以后售出的每台手机都送对应型号的手机透明壳。这里苹果13和13的透明手机壳就是一个对象家族,他们之间是配套的。这时候,工厂模式就派不上用场了,毕竟只能创建一个对象。一个对象家族对应一个工厂(这个工厂可以创建多个对象,例如iph原创 2020-12-04 17:04:39 · 102 阅读 · 0 评论 -
JAVA设计模式 - 工厂方法(Factory Method)
工厂方法(Factory Method)和简单工厂方模式的不同之处在于,工厂方法把工厂类也抽象出来一个接口(抽象类),每一种产品都有自己对应的工厂类。前面就说到了简单工厂模式,现在设想一下,如果我们新出一款产品iphone13,需要怎么改动代码。1)首先我们要创建一个新的手机产品类Iphone13实现Apple接口2)在工厂类修改代码,加上新手机的逻辑代码。我在这里举得代码是十分简单的,但在实际项目是十分复杂(层次深)的结构。所以在工厂类修改代码会很冗杂。这时候工厂模式来了!它来了!把工厂类定义原创 2020-12-04 17:02:01 · 91 阅读 · 0 评论 -
JAVA设计模式 - 简单工厂(Simple Factory)
简单工厂(Simple Factory)在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。1)我举个栗子,没有工厂的时候,我们想要一个苹果手机,我们需要自己new创建一个出来。(这时候我们想创建一个手机需要很多零件(参数),每当我们想要一个手机就要准备很多零件来创造一个手机,这就很麻烦了,那么有没有可以我想要手机就能拿到,不管它需要什么零件,这就是为什么工厂类的由来)2)现在有了工厂模式,想要手机直接到工厂取就好了。(零件的思想我没有在案例中体现出来)/** * 苹果系列原创 2020-12-04 16:59:22 · 139 阅读 · 0 评论 -
JAVA设计模式 - 单例模式(Singleton)
单例(Singleton)我一直觉得学习死记硬背是没什么用的,下面让我们用理所当然的视角来学习设计模式之一—单例模式。所谓单例模式,如其名,全局只能有一个实例。我们都知道,平时创建实例都是通过构造函数new出来,因此我们想要保证单例就必须把构造函数私有,变量私有且静态(防止被修改和通过.访问)。Ⅰ 懒汉式-线程不安全以下实现中,私有静态变量 uniqueInstance在类加载的时候不会 被实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。(这就转载 2020-12-03 16:09:59 · 119 阅读 · 0 评论 -
Spring Boot配合IDEA实现热部署
spring-boot-devtools配置IDEA实现热部署==使用这种方法解决了Debug模式下新增方法、变量,修改配置文件,还有缓存的问题,这种方法是需要重启Tomcat的。1.在pom.xml文件中添加devtools依赖2.点击Edit Configiration3.设置4.在Setting窗口搜索Compiler选中自动创建项目5.使用Shift + Ctrl + Alt + / 或者双击Shift搜索Registry6.勾选中第一项7.接下来重启服务就可以实现热部原创 2020-12-03 14:36:00 · 294 阅读 · 0 评论 -
IDEA实现Debug热加载
## IDEA自带热加载,Debug模式打开是自动带有热加载的**,就是说修改返回值或代码刷新页面不用重启就有效果。热加载不重启tomcat但是新增方法、变量,修改配置文件,模板引擎页面默认开启缓存的问题,这时候只能重启。1.点击Edit Configiration2.设置,选择更新类文件和资源3.在Setting窗口搜索Compiler4.使用Shift + Ctrl + Alt + / 或者双击Shift搜索Registry5.勾选中第一项6.如果想要缓存模板文件也生效,就在配置文原创 2020-12-03 14:26:10 · 2174 阅读 · 0 评论 -
IDEA热加载和热部署配置
1.IDEA自带热加载,Debug模式打开是自动带有热加载的就是说修改返回值或代码刷新页面不用重启就有效果。热加载不重启tomcat但是新增方法、变量,修改配置文件,模板引擎页面默认开启缓存的问题,这时候只能重启。点击这里配置.2.spring-boot-devtools 实现热部署使用这种方法解决了Debug模式下新增方法、变量,修改配置文件,还有缓存的问题,这种方法是需要重启Tomcat的。点击这里配置....原创 2020-12-03 14:16:36 · 906 阅读 · 0 评论 -
秋招笔试题思考
一个ArrayList,数字范围为[0,1024],将其中的奇数按照从大到小的顺序输出 TreeSet<Integer> set = new TreeSet<>(new Comparator<Integer>(){ @Override public int compare(Integer integer, Integer t1) { return t1.compareTo(i原创 2020-12-03 13:39:40 · 125 阅读 · 0 评论 -
SpringBoot优雅得校验参数
SpringBoot优雅得校验参数1.先在pom.xml中添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>2.在需要校验的数据上面添加注释3.校验注释@Null 被注释的元素必须为 null原创 2020-12-02 18:01:33 · 193 阅读 · 0 评论