optional

Optional 容器类

会有一股神秘感。 提交于 2020-08-18 07:05:59
什么是Optional容器类 Optional 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以 避免空指针异常 。 Optional类常用方法: Optional.of(T t) : 创建一个 Optional 实例。 Optional.empty() : 创建一个空的 Optional 实例。 Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例。 isPresent() : 判断是否包含值。 orElse(T t) : 如果调用对象包含值,返回该值,否则返回t。 orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值。 orElseThrow(Supplier es) : 当遇到一个不存在的值的时候,并不返回一个默认值,而是抛出异常。 map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()。 flatMap(Function mapper):与 map 类似,要求返回值必须是Optional。 filter(Predicate p):接收一个函数式接口,当符合接口时

Spring Data JPA 之 一对一,一对多,多对多 关系映射

最后都变了- 提交于 2020-08-17 20:19:39
一、@OneToOne关系映射 JPA 使用@OneToOne来标注一对一的关系。 实体 People :用户。 实体 Address:家庭住址。 People 和 Address 是一对一的关系。 这里用两种方式描述 JPA 的一对一关系。 一种是通过外键的方式(一个实体通过外键关联到另一个实体的主键); 另外一种是通过一张关联表来保存两个实体一对一的关系。 1、通过外键的方式 people 表(id,name,sex,birthday,address_id) address 表(id,phone,zipcode,address) People.java @Entity public class People { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Long id; //id @Column(name = "name", nullable = true, length = 20) private String name; //姓名 @Column(name = "sex", nullable = true, length = 1) private String sex; //性别 @Column(name =

Java8新特性代码示例浅聊

旧城冷巷雨未停 提交于 2020-08-17 19:12:17
   Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。   博主最近才有空研究了一下Java8的一些新特性,简单地写了一些测试用例,感觉开始有那味了,受益颇深,将示例代码贴出,以供大家学习交流。   测试用例代码:    import java.util.* ; import java.util.stream.Collectors; /** * @ClassName Java8Test * @Description java8新特性测试用例 * @Author zzp * @Date 2020/6/30 11:06 * @Version 1.0 */ public class Java8Test { public static void main(String[] args) { Java8Test test = new Java8Test(); List <String> hobbies1= Arrays.asList("篮球","看书","写作" ); List <String> hobbies2= Arrays.asList("足球","看书","睡觉" );

关于markdown 的简单使用(已更新)

走远了吗. 提交于 2020-08-17 18:59:16
markdown的介绍 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。 Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如>LaTeX,Docbook。Markdown增强版中比较有名的有Markdown Extra、MultiMarkdown、 Maruku等。这些衍生版本要么基于工具,如Pandoc;要么基于网站,如GitHub和>Wikipedia,在语法上基本兼容,但在换行等细节上也有改动。 为什么有那么多人喜欢用markdown 学习成本低 ——身为一个轻量级的标记语言,Markdown拥有较少的标记符号,经常用到的就更少了,而且非常简单。 任何文本编辑器都可以打开 ——Markdown文档实际上就是纯文本(plain text)格式,只要是个文本编辑器都可以打开,只不过支持Markdown语法的编辑器会将其渲染成相应格式,由于其语法足够简单,即使用不支持Markdown的编辑器打开,你也能看懂。 格式转换方便 ——不少Markdown编辑器支持将文档转为pdf、docx、html等

Pydantic

≯℡__Kan透↙ 提交于 2020-08-17 17:21:28
目录 基本原理 安装 用法 dataclasses 嵌套的dataclasses 选择 验证器 pre和whole验证 always验证 dataclass验证器 字段检查 递归模型 模式创建 错误处理 datetime类型 Exotic类型 Secret类型 JSON类型 自定义数据类型 帮助函数 模型的 Config 类 设置 动态模型创建 与mypy一起使用 严格的可选项 必须字段和mypy 伪不可变性 复制 序列化 JSON序列化 Pickle序列化 抽象基类 延迟注解 Pydantic 是一个使用Python类型提示来进行数据验证和设置管理的库。Pydantic定义数据应该如何使用纯Python规范用并进行验证。PEP 484 从Python3.5开始引入了类型提示的功能,PEP 526 使用Python3.6中的变量注释语法对其进行了拓展。Pydantic使用这些注释来验证不受信任的数据是否采用了您想要的形式。 示例: from datetime import datetime from typing import List from pydantic import BaseModel class User(BaseModel): id: int name = 'John Doe' signup_ts: datetime = None friends: List[int

[安全攻防进阶篇] 七.恶意样本检测之编写代码自动提取IAT表、字符串及时间戳溯源

Deadly 提交于 2020-08-17 16:26:28
系统安全绕不开PE文件,PE文件又与恶意样本检测及分析紧密相关。前文作者带领大家逆向分析两个CrackMe程序,包括逆向分析和源码还原。这篇文章主要介绍了PE文件基础知识及恶意样本检测的三种处理知识,手动编写代码实现了提取IAT表、二进制转字符串及获取PE文件时间戳,这是恶意样本分析和溯源至关重要的基础,并且网络上还没见到同时涵盖这三个功能且详细的文章,希望对您有所帮助。术路上哪有享乐,为了提升安全能力,别抱怨,干就对了~ 同时,PE文件基础知识推荐作者另一个安全系列: [网络安全自学篇] PE文件逆向之PE文件解析、PE编辑工具使用和PE结构修改 [网络安全自学篇] PE文件逆向之数字签名解析及Signcode、PEView、010Editor等工具用法 [网络安全自学篇] Windows PE病毒原理、分类及感染方式详解 从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵! 接下来我将开启新的安全系列,叫“安全攻防进阶篇”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等

Flink CEP 原理和案例详解

牧云@^-^@ 提交于 2020-08-17 12:03:43
点击上方 蓝色字体 ,选择“ 设为星标 ” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 1 概念 (1)定义 复合事件处理(Complex Event Processing,CEP)是一种基于动态环境中事件流的分析技术,事件在这里通常是有意义的状态变化,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合关系制定检测规则,持续地从事件流中查询出符合要求的事件序列,最终分析得到更复杂的复合事件。 (2)特征 CEP的特征如下: 目标:从有序的简单事件流中发现一些高阶特征; 输入:一个或多个简单事件构成的事件流; 处理:识别简单事件之间的内在联系,多个符合一定规则的简单事件构成复杂事件; 输出:满足规则的复杂事件。 (3)功能 CEP用于分析低延迟、频繁产生的不同来源的事件流。CEP可以帮助在复杂的、不相关的时间流中找出有意义的模式和复杂的关系,以接近实时或准实时的获得通知或组织一些行为。 CEP支持在流上进行模式匹配,根据模式的条件不同,分为连续的条件或不连续的条件;模式的条件允许有时间的限制,当条件范围内没有达到满足的条件时,会导致模式匹配超时。 看起来很简单,但是它有很多不同的功能: ① 输入的流数据,尽快产生结果; ② 在2个事件流上,基于时间进行聚合类的计算; ③

jdk8的特性stream().map()

落爺英雄遲暮 提交于 2020-08-17 04:15:17
转: https://blog.csdn.net/sanchan/article/details/70753645 java8的optional的使用: http://www.jdon.com/idea/java/using-optional-effectively-in-java-8.html http://www.runoob.com/java/java8-optional-class.html Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。 Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。 Optional 类的引入很好的解决空指针异常。 类声明 以下是一个 java.util.Optional<T> 类的声明: public final class Optional < T > extends Object 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

.Net Core 2.2升级3.1的避坑指南

筅森魡賤 提交于 2020-08-17 03:30:38
写在前面   微软在更新.Net Core版本的时候,动作往往很大,使得每次更新版本的时候都得小心翼翼,坑实在是太多。往往是悄咪咪的移除了某项功能或者组件,或者不在支持XX方法,这就很花时间去找回需要的东西了,下面是个人在迁移.Net Core WebApi项目过程中遇到的问题汇总: 开始迁移 1. 修改*.csproj项目文件 <TargetFramework>netcoreapp2. 2 </TargetFramework> 修改为 <TargetFramework>netcoreapp3.1</TargetFramework> 2 修改Program public static void Main( string [] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder( string [] args) => WebHost.CreateDefaultBuilder(args) .UseStartup <Startup>().ConfigureAppConfiguration((hostingContext, config) => { config.AddJsonFile($ " 你的json文件.json " ,

Elasticsearch从入门到放弃:瞎说Mapping

陌路散爱 提交于 2020-08-16 19:25:30
前面我们聊了 Elasticsearch 的索引、搜索和分词器,今天再来聊另一个基础内容—— Mapping。 Mapping 在 Elasticsearch 中的地位相当于关系型数据库中的 schema,它可以用来定义索引中字段的名字、定义字段的数据类型,还可以用来做一些字段的配置。从 Elasticsearch 7.0开始,Mapping 中不在乎需要定义 type 信息了,具体原因可以看 官方的解释 。 字段的数据类型 我们刚刚提到 Mapping 中可以定义字段的数据类型,这可能是 Mapping 最常用的功能了,所以我们先来看看 Elasticsearch 都支持哪些数据类型。 简单类型:text、keyword、date、long、double、boolean、ip 复杂类型:对象类型、嵌套类型 特殊类型:用于描述地理位置的 geo_point、geo_shape Elasticsearch 支持的数据类型远不止这些,由于篇幅原因,这里就不一一列举了。我找几个工作中常见的来介绍一下。 首先就是字符串了,Elasticsearch 中的字符串有 text 和 keyword 两种。其中 text 类型的字符串是可以被全文检索的,它会被分词器作用, PUT my_index { "mappings" : { "properties" : { "full_name" : {