通配符

[读书笔记] SQL必知必会

爷,独闯天下 提交于 2019-12-12 07:26:05
SQL必知必会 文章目录 SQL必知必会 检索相关注意点 检索去重数据关键字——DISTINCT 检索从第N行开始检索前M行数据 三种注释方式 排序相关注意点 排序方向 过滤数据 WHERE子句操作符 组合WHERE子句 AND、OR逻辑操作符 IN操作符 NOT操作符 用通配符进行过滤 百分号通配符(%) 下划线(_)通配符 方括号([ ])通配符 计算字段 拼接字段 算术运算 使用函数 文本处理函数 数值处理函数 聚集函数 聚集不同值 组合聚集函数 数据分组 过滤分组 分组和排序 子查询 作为计算阻断使用字符串 联结 使用表别名 不同类型的联结 使用带聚集函数的联结 组合查询 UNION关键字 数据插入 事物处理 游标 索引 检索相关注意点 检索去重数据关键字——DISTINCT DISTINCT关键字指示数据库只返回不同值,若使用DISTINCT关键字,必须放在列名前面。DISTINCT关键字作用于所有列。 SELECT DISTINCT * FROM TABLE ; 检索从第N行开始检索前M行数据 SQL SERVER: SELECT TOP 5 column FROM table ; ORACLE: SELECT cloumn FROM table WHERE ROWNUM <= 5 ; MySQL,MariaDB,PostgreSQL或者SQLite: SELECT

Java泛型的一些笔记(九)

南笙酒味 提交于 2019-12-12 02:47:46
泛型类 class Generics <T>{ private T item; ..... } 泛型接口 public interface Generics<T> { public T next(); } 泛型方法 public <T> T method(Generics<T> generics){ .............. } 泛型通配符 类型通配符一般是使用?代替具体的类型实参,注意了,此处’?’是类型实参,而不是类型形参 public <T> T method(Generics<?> generics){ .............. } 泛型上下界 类型实参只准传入某种类型的父类或某种类型的子类 public <T> T method(Generics<? extends Number> generics){ .............. } 静态泛型方法 必须将静态方法也定义成泛型方法 参考1:https://www.cnblogs.com/coprince/p/8603492.html 参考2:https://blog.csdn.net/WillCold/article/details/12848617 来源: CSDN 作者: 我的小封 链接: https://blog.csdn.net/suicuney/article/details/103458166

java--泛型

試著忘記壹切 提交于 2019-12-11 13:27:53
转:https://segmentfault.com/a/1190000014120746 一、什么是泛型? Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常。泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。 二、为什么需要泛型 早期Java是使用Object来代表任意类型的,但是向下转型有强转的问题,这样程序就不太安全 首先,我们来试想一下:没有泛型,集合会怎么样 Collection、Map集合对元素的类型是没有任何限制的。本来我的Collection集合装载的是全部的Dog对象,但是外边把Cat对象存储到集合中,是没有任何语法错误的。 把对象扔进集合中,集合是不知道元素的类型是什么的,仅仅知道是Object。因此在get()的时候,返回的是Object

跟我一起写 Makefile(四)

一世执手 提交于 2019-12-10 05:40:25
书写规则 ———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为最终的目标。make所完成的也就是这个目标。 好了,还是让我们来看一看如何书写规则。 一、规则举例 foo.o : foo.c defs.h # foo模块 cc -c -g foo.c 看到这个例子,各位应该不是很陌生了,前面也已说过,foo.o是我们的目标,foo.c和defs.h是目标所依赖的源文件,而只有一个命令“cc -c -g foo.c”(以Tab键开头)。这个规则告诉我们两件事: 1、文件的依赖关系,foo.o依赖于foo.c和defs.h的文件,如果foo.c和defs.h的文件日期要比foo.o文件日期要新,或是foo.o不存在,那么依赖关系发生。 2、如果生成(或更新)foo.o文件。也就是那个cc命令,其说明了,如何生成foo.o这个文件。(当然foo.c文件include了defs.h文件) 二、规则的语法 targets : prerequisites

[LeetCode] 44、通配符匹配

白昼怎懂夜的黑 提交于 2019-12-09 20:10:22
题目描述 给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。 ‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。 示例: 输入: s = “aa” p = “a” 输出: false 解释: “a” 无法匹配 “aa” 整个字符串。 解题思路 此题模仿《剑指offer》的递归写法,会超时。要用动态规划。 思路1 , 思路2 。 动态规划四要素 :(推荐 思路1 的解释,思路2某些点不清晰) 状态表示 f [ i ] [ j ] f[i][j] f [ i ] [ j ] 表示 s 1 s1 s 1 的前 i i i 个字符,和 s 2 s2 s 2 的前 j ​ j​ j ​ 个字符,能否匹配。(下标从1开始计) 状态转移方程 如果 s 1 s1 s 1 的第 i i i 个字符和 s 2 s2 s 2 的第 j j j 个字符相同, 或者 s 2 s2 s 2 的第 j j j 个字符为 ′ ? ′ '?' ′ ? ′ : f [ i ] [ j ] = f [ i − 1 ] [ j − 1 ] f[i][j] = f[i - 1][j - 1] f

[转载]讲一讲list泛型的区别

烂漫一生 提交于 2019-12-09 14:02:32
定义:声明中具有一个或者多个类型参数(type parameter)的类或者接口,就是泛型类或者接口。泛型类和接口统称为泛型(generic type)。 clipboard.png 每种泛型定义一组类型形参(formal type parameters),这些类型形参有时也被简称为类型参数(type parameter),例如对于泛型(generic type)List而言,List就是一个参数化的类型(parameterized type),String就是对应于类型形参(formal type parameters)的类型实参(actual type parameter)。 每个泛型定义一个原生类型(raw type),即不带任何类型参数的类型名称,例如,与List对应的原生类型是List。原生类型就像从类型声明中删除了所有泛型信息一样。实际上原生类型List与Java平台在有泛型之前的接口类型List完全一样。 容器类使用泛型的好处: 安全性:在对参数化类型的容器中放入了错误即不匹配的类型的时候,编译器将会强制性进行错误提示。 便利性:当从容器中取出元素的时候不用自己手动将Object转换为元素的实际类型了,编译器将隐式地进行自动转换。 表述性:带有类型实参的泛型即参数化类型,可以让人看到实参就知道里面的元素E都是什么类型。 所以,不应该使用原生类型的原因如下:

centos7.3安装与配置SVN

让人想犯罪 __ 提交于 2019-12-08 13:08:12
转自:http://blog.csdn.net/allyli0022/article/details/73741269 参考:http://www.centoscn.com/image-text/config/2016/0429/7146.html http://blog.csdn.net/u012486840/article/details/52524389 1、yum命令即可方便的完成安装 $ sudo yum install subversion 测试 安装是否成功: $ svnserve --version 2. 建立版本库 创建svn数据目录(subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里): $ sudo mkdir -p / var /svn 创建版本库: $ sudo svnadmin create / var /svn/wangwa 如果删除版本库: $ sudo rm -rf / var /svn/somnus 3. 配置svn配置文件 每个版本库创建之后都会生成svnserve.conf主要配置文件。编辑它: $ sudo vim / var /svn/somnus/conf/svnserve.conf 编辑示例: [general] anon-access = none #控制非鉴权用户访问版本库的权限 auth

centos7.3安装与配置SVN

浪子不回头ぞ 提交于 2019-12-08 12:52:36
参考:http://www.centoscn.com/image-text/config/2016/0429/7146.html http://blog.csdn.net/u012486840/article/details/52524389 1、yum命令即可方便的完成安装 $ sudo yum install subversion 测试 安装是否成功: $ svnserve --version 2. 建立版本库 创建svn数据目录(subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里): $ sudo mkdir -p / var /svn 创建版本库: $ sudo svnadmin create / var /svn/wangwa 如果删除版本库: $ sudo rm -rf / var /svn/somnus 3. 配置svn配置文件 每个版本库创建之后都会生成svnserve.conf主要配置文件。编辑它: $ sudo vim / var /svn/somnus/conf/svnserve.conf 编辑示例: [general] anon-access = none #控制非鉴权用户访问版本库的权限 auth-access = write #控制鉴权用户访问版本库的权限 password-db = passwd #指定用户名口令文件名

leetcode--44. 通配符匹配

泄露秘密 提交于 2019-12-08 06:52:26
题目:44. 通配符匹配 链接: https://leetcode-cn.com/problems/wildcard-matching/description/ 给定一个字符串 ( s ) 和一个字符模式 ( p ) ,实现一个支持 '?' 和 '*' 的通配符匹配。 '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。 这个跟第十题( 10. Regular Expression Matching )很像啊,写了递归超时了,然后改成了DP过了。 python: class Solution: def isMatch(self, s, p): """ :type s: str :type p: str :rtype: bool """ dp=[[False for col in range(len(p)+1)]for row in range(len(s)+1)] dp[0][0]=True for i in range(len(s)+1): for j in range(1,len(p)+1): if p[j-1]=="*": dp[i][j]=dp[i][j-1] or (i>0 and dp[i-1][j]) else: dp[i][j]=i>0 and dp[i-1][j-1] and (s[i-1]==p[j-1] or p[j-1]=="?")

LeetCode-44.通配符匹配(考察点:动态规划)

最后都变了- 提交于 2019-12-08 06:12:41
给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。 '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a" 无法匹配 "aa" 整个字符串。 示例 2: 输入: s = "aa" p = "*" 输出: true 解释: '*' 可以匹配任意字符串。 示例 3: 输入: s = "cb" p = "?a" 输出: false 解释: '?' 可以匹配 'c', 但第二个 'a' 无法匹配 'b'。 示例 4: 输入: s = "adceb" p = "*a*b" 输出: true 解释: 第一个 '*' 可以匹配空字符串, 第二个 '*' 可以匹配字符串 "dce". 示例 5: 输入: s = "acdcb" p = "a*c?b" 输入: false 解题思路:动态规划, 构建辅助数组dp,dp[i][j]表示s(0~i-1)与p(0~j-1)子串是否完全匹配 需s和p完全匹配,外层循环对p进行遍历,内层循环对待匹配字符串s进行遍历,每次对S的当前字符(s[i-1