validation统一表单验证(含自定义枚举验证)
一般我们对前端传输的参数做判断时,可能都是以以下方式进行判断,如果再加上字段的长度、正则等校验的话就会显得代码很累赘了。 // 新增/修改通用参数非空校验
if (StringUtil.isBlank(menu.getParentId())) {
throw new LsException(ResultEnum.PARAM_MISSING_ERROR, "父级菜单ID不能为空!");
}
if (StringUtil.isBlank(menu.getMenuName())) {
[TJOI2015]弦论 题解(第k小子串)
题意: 对于一个给定的长度为n的字符串,求出它的第k小子串。 有参数t,t为0则表示不同位置的相同子串算作一个,t为1则表示不同位置的相同子串算作多个。 题解: 首先,因为t的原因,后缀数组较难实现,这里不讨论。 使用后缀自动机: 因为,这里需要按字典序考虑子串,所以要使用trs指针。 首先,计算出每个子串的贡献:t=0则为1,t=1则为出现次数。 然后,通过记搜算出匹配到每个点之后可以形成多少贡献。因为使用trs,无需考虑压缩。 最后,在每个节点处找到唯一一个应当向下计算的点,循环直到找到解
Linux mint 启动文本模式(不启动图形界面)
Linux Mint 系统用了很久,很顺手,赞一个! 有一天想同时运行多个虚拟机linux系统做实验,想着只启动文本模式可以省点内存资源,结果试了多种方法都不成功,网上现有针对Ubuntu原版和CentOS的方法都不适用;最后自己摸索了一套3步最简洁有效的办法,实质是让系统启动文本界面后使图形界面不再启动,写出来供大家参考少走弯路,也做个记录免得自己忘了。 亲测Linux Mint 19/19.1/19.2有效,其他Ubuntu版本未试过,有试过有用的小伙伴请补充,谢谢! 1、修改并保存/et
论文笔记·流形学习:Laplacian Eigenmaps
Abstract • 问题:对于嵌入在高维空间的低维流形数据的表示; • 利用图Laplacian算子、流形上的 Laplacian Beltrami 算子和热方程的对应关系; • 局部保留能力和与聚类的自然联系。 1 Introduction • 传统降维方法如PCA、MDS,非线性映射方法如自组织映射和其它基于神经网络的方法,没有有效的方法找到全局最优,没有考虑数据可能存在的流形结构; • 算法生成的映射可以看作是对流形几何结构连续映射的离散近似; • 框架: 1)用 adjacency
【JVM 知识体系框架总结】
JVM 内存分布 线程共享数据区:方法区->类信息,静态变量堆->数组对象 线程隔离区虚拟机栈-> 方法本地方法栈->本地方法库 native 堆、程序计数器 JVM 运行数据 程序计数器 线程隔离 ,比较小的内存空间,当前线程所执行的字节码的行号线程
Java线程生命周期与状态切换
前提 最近有点懒散,没什么比较有深度的产出。刚好想重新研读一下JUC线程池的源码实现,在此之前先深入了解一下Java中的线程实现,包括线程的生命周期、状态切换以及线程的上下文切换等等。编写本文的时候,使用的JDK版本是11。 Java线程的实现 在JDK1.2
JMM - 玩转 happens-before
要玩转 happens-before 我们需要先简单介绍下几个基本概念 高速缓存 随着 CPU 的快速发展它的计算速度和内存的读写速度差距越来越大,如果还是去读写内存的话那么 CPU 的处理速度就会收到内存读写速度的限制,为了弥补这种差距,为了保证 CPU 的
Python itertools 操作迭代对象
Python 的内建模块itertools提供了很多操作迭代对象的方法 参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017783145987360 无限迭代器 count() 返回一个可无限迭代的迭代器,可以用于产生自然数 >>> import itertools
>>> natuals = itertools.count(1)#1可以省略不屑,默认从0开始
>>> for n in natuals:
...
DIP|PCN|CoevDB|PID|Y2H|RosettaDock Serve|元基因组学|微生物多样性
生命组学: 比较真核生物有关呼吸链的gene是比较核外编码基因,因为与呼吸有关的功能在线粒体上,线粒体位于核外。想要查看两种基因是否具有相互作用,可以对不同物种的编码ATP6 和ATP8的直系同源基因构建共进化树;可以绘制热图观察其区块化现象;可以计算相关系数;可以绘制箱图,进行类别之间相互比较,可看出显著性差异。以上操作都可以得到一组值或者图,为判定是否具有相互作用,可使用已知数据做同样操作,得到一个标准值。两相比较得到复合物之间相互作用。 DIP(蛋白质相互作用数据库)和PCN这些已有数据
如何高效的管理缓存?--LoopBuffer
我们需要一种缓存结构,可以未预知数据大小的情况下高效的管理内存。每次数据到来的时候都能保证有效的写入,即使动态的扩展内存也不会对原有的数据进行任何挪移操作。读取数据的时候只能顺序的读取,也不会对未读取到的数据进行移动。 CppNet的数据流缓冲通过CBuffe
numpy库中数组的数据类型
numpy库中数组的数据类型 dtype是一个特殊的对象,它含有ndarray将一块内存解释为特殊数据类型所需要的信息 指定数据类型创建数组 >>> import numpy as np
>>> arr1=np.array([1,2,3,4],dtype=np.float64)
>>> arr2=np.array([1,2,3,4],dtype=np.int32)
>>> arr1.dtype
dtype('float64')
>>> arr2.dtype
dtype('int32') num
「题解」:X国的军队
问题 A: X国的军队 时间限制: 1 Sec 内存限制: 256 MB 题面 题面谢绝公开。 题解 简单贪心。 按照存活的士兵数量(即参加战斗的士兵数量减去阵亡的士兵数量)排序。 若存活士兵数量相同则按照参与战斗的士兵数量排序。 顺序扫一遍统计答案。 #include<bits/stdc++.h>
#define int long long
#define rint register int
#define read(A) A=init()
using namespace std;
myaql功能封装代码及封装后的测试
---恢复内容开始--- 为了以后工作查询方便,特地将一些常用的代码,以博客形式储存下来,如果能帮助对有相同需求的朋友,甚是欣喜! mysql与Python交互中的封装 1 #-*- coding: utf-8 -*-
2 '''
3 作者:时亚东
4 功能:将mysql数据封装成一个类
5 版本:1.0
6 时间:2019-10-01
7 '''
8
9 #模块导入
10 import pymysql
11
12 # 封装成一个MySQL类
13
001移动平均线系列
移动平均线是技术分析理论中应用最普遍的指标之一,主要用于确认、跟踪和判断趋势,提示买入和卖出信号,在单边市场行情中可以较好的把握市场机会和规避风险。但是,移动平均线一般要与其他的技术指标或基本面相结合来使用,特别是当市场处于盘整行情时,其买入卖出信号会频繁出现,容易失真。 通用函数名:MA 代码:ta.MA(close,timeperiod=30,matype=0) 移动平均线系列指标包括:SMA简单移动平均线、EMA指数移动平均线、WMA加权移动平均线、DEMA双移动平均线、TEMA三重指数
JS显示当360浏览器详细信息
<html> <head> <title>JS显示当前浏览器详细信息</title> <SCRIPT> function whatBrowser() { document.Browser.Name.value=navigator.appName; document.Browser.Version.value=navigator.appVersion; document.Browser.Code.value=navigator.appCodeName; document.Browser.Agen
刷题遇到的各种 之 字符串
一、C++ strcpy字符串赋值函数 strcpy(Cstring, value); Cstring 是接收值的变量的名称,而 value 则是字符串常数或另一个 C 字符串变量的名称 #include <iostream>
#include<string.h>
using namespace std;
int main()
{
const int SIZE = 12;
char name1[SIZE], name2[SIZE];
strcpy(na
spring boot 依赖配置
虽然springboot号称是零配置 配置文件确实不需要,但是 依赖还是要有的 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <properties> <java.version>1.7</java.version> </properties> <
今日推荐
周排行