optional

Springboot项目使用xjar加密jar包

心不动则不痛 提交于 2020-08-05 05:17:02
在pom文件中加入 plugins下 <!--jar文件加密,防止反编译--> <plugin> <groupId>com.github.core-lib</groupId> <artifactId>xjar-maven-plugin</artifactId> <version>4.0.1</version> <executions> <execution> <goals> <goal>build</goal> </goals> <phase>package</phase> <!-- 或使用 <phase>install</phase> --> <configuration> <!--<password>io.xjar</password>--> <!-- optional <algorithm/> <keySize/> <ivSize/> <includes> <include/> </includes> <excludes> <exclude/> </excludes> <sourceDir/> <sourceJar/> <targetDir/> <targetJar/> --> <targetJar>xstm-management.jar</targetJar> </configuration> </execution> </executions> </plugin>

关于Java8的精心总结

僤鯓⒐⒋嵵緔 提交于 2020-08-05 04:48:22
前言 ​ 最近公司里比较新的项目里面,看到了很多关于java8新特性的用法,由于之前自己对java8的新特性不是很了解也没有去做深入研究,所以最近就系统的去学习了一下,然后总结了一篇文章第一时间和大家分享一下。 ​ ​ 在了解一项新技术之前,我们需要了解我们为什么要去学习它以及它的优点,以下是我总结的: Java8(又称jdk1.8)是java语言开发的一个主要版本,Java8是oracal公司于2014年3月发布,可以看成是自java5以来最具有革命性的版本。 新特性的优点: 速度更快、代码更少、便于并行、最大化减少空指针异常 函数式编程提供了一种更高层次的抽象化 排序: List<RoleEntity> rolesListSort = rolesList.stream().sorted(Comparator.comparing(RoleEntity::getCreateDate)).collect(Collectors.toList()); Consumer是一个函数式接口 参数是Consumer类型的,Consumer里面的泛型表示泛型的类型要么是Integer,要么是Integer的父类,super表示它及它上面的,也就是父类。 下面这段代码是在Iterable接口里面的默认方法,jdk8之后的新方法,默认方法(默认方法的引入很大程度上是为了保证向后兼容) default

C++17结构化绑定

Deadly 提交于 2020-08-05 01:46:38
C++17结构化绑定 动机 std::map的insert方法返回std::pair,两个元素分别是指向所插入键值对的迭代器与指示是否新插入元素的布尔值,而std::map::iterator解引用又得到键值对std::pair。在一个涉及std::map的算法中,有可能出现大量的first和second,让人不知所措。 include include int main() { typedef std::map<int, int> Map; Map map; std::pair<Map::iterator, bool> result = map.insert(Map::value_type(1, 2)); if (result.second) std::cout << "inserted successfully" << std::endl; for (Map::iterator iter = map.begin(); iter != map.end(); ++iter) std::cout << "[" << iter->first << ", " << iter->second << "]" << std::endl; } C++11标准库添加了std::tie,用若干引用构造出一个std::tuple,对它赋以std::tuple对象可以给其中的引用一一赋值(二元std:

Java8新特性之接口默认方法

ε祈祈猫儿з 提交于 2020-08-05 01:11:45
JAVA8 已经发布很久,而且毫无疑问,java8 是自 java5(2004年发布)之后的最重要的版本。其中包括语言、编译器、库、工具和 JVM 等诸多方面的新特性。Java8 新特性列表如下: 接口默认方法 函数式接口 Lambda 表达式 方法引用 Stream Optional 类 Date API Base64 重复注解与类型注解 接口默认方法 1、什么是接口默认方法 从 Java8 开始,程序允许在接口中包含带有具体实现的方法,使用 default 修饰,这类方法就是默认方法。默认方法在接口中可以添加多个,并且 Java8 提供了很多对应的接口默认方法。 2、设计接口默认方法好处 使用接口编程的好处是的开发是面向抽象而不再是面向具体来编程,使得程序变得很灵活,缺陷是,当需要修改接口时候,此时对应需要修改全部实现该接口的类,举个例子, java 8 之前对于我们常用的集合框架没有 foreach 方法,通常能想到的解决办法是在 JDK 里给相关的接口添加新的方法及实现。从 Java8 开始,引入了接口默认方法,这样的好处也是很明显的,首先解决了 Java8 以前版本接口兼容性问题,同时对于我们以后的程序开发,也可以在接口子类中直接使用接口默认方法,而不再需要再各个子类中各自实现响应接口方法。 3、默认方法 jdk8 中,接口可以包含实现方法,需要使用 default 修饰

VictoriaMetrics vmalert 说明

旧街凉风 提交于 2020-08-04 18:07:09
vmalert 可以执行一系列给定的rule(基于metricsql),然后发送报警到Alertmanager 特性 集成VictoriaMetrics TSDB MetricsQL 表达式校验 prometheus 报警规则格式支持 集成Alertmanager 轻量级没有额外的依赖 使用 构建 目前需要自己构建,很简单 make vmalert 就可以了 启动 依赖一系列的规则(promql&&metricssql),数据源地址,通知地址Alertmanager地址,方便处理,聚合报警以及发送通知 命令: . / bin / vmalert - rule = alert. rules \ - datasource. url = http: //localhost:8428 \ - notifier. url = http: //localhost:9093 一个参考规则 groups: - name: groupGorSingleAlert rules: - alert: VMRows for: 10 s expr: vm_rows > 0 labels: label: bar host: "{{ $labels.instance }}" annotations: summary: "{{ $value|humanize }}" description: "{{$labels}

Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略

只愿长相守 提交于 2020-08-04 17:43:42
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略 目录 imblearn/imbalanced-learn库的简介 imblearn/imbalanced-learn库的安装 imblearn/imbalanced-learn库的使用方法 imblearn/imbalanced-learn库的简介 imblearn/imbalanced-learn是一个python包,它提供了许多重采样技术,常用于显示强烈类间不平衡的数据集中。它与scikit learn兼容,是 scikit-learn-contrib 项目的一部分。 在python3.6+下测试了imbalanced-learn。依赖性要求基于上一个scikit学习版本: scipy(>=0.19.1) numpy(>=1.13.3) scikit-learn(>=0.22) joblib(>=0.11) keras 2 (optional) tensorflow (optional) imblearn/imbalanced-learn库的安装 pip install imblearn pip install imbalanced-learn pip install -U imbalanced-learn conda install -c conda-forge

传统蓝牙HCI(Bluetooth HCI)的概念介绍

自闭症网瘾萝莉.ら 提交于 2020-08-04 10:26:12
一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。 第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等 第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等 第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。 第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL) 第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等 第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展 第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。 另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我

有没有更好的方法在JavaScript中执行可选的函数参数? [重复]

泄露秘密 提交于 2020-07-29 09:58:26
问题: This question already has an answer here: 这个问题在这里已有答案: Set a default parameter value for a JavaScript function 24 answers 为JavaScript函数设置 24个答案 的默认参数值 I've always handled optional parameters in JavaScript like this: 我总是在JavaScript中处理可选参数,如下所示: function myFunc(requiredArg, optionalArg){ optionalArg = optionalArg || 'defaultValue'; // Do stuff } Is there a better way to do it? 有没有更好的方法呢? Are there any cases where using || 有没有使用 || like that is going to fail? 那会失败吗? 解决方案: 参考一: https://stackoom.com/question/cjd/有没有更好的方法在JavaScript中执行可选的函数参数-重复 参考二: https://oldbug.net/q/cjd/Is-there-a-better

Optional 使用和不使用 的代码对比

风流意气都作罢 提交于 2020-07-29 09:13:27
使用 Optional public class OptExample { // 从配置中获取文件名,可能没有 static Optional<String> getFilename() { return Optional.empty(); } // 打开文件,可能打开失败 static Optional<File> openFile(String name) { return Optional.empty(); } // 打开文件,文件中的数据格式可能不正确 static Optional<List<String>> getData(File file) { return Optional.empty(); } // 解析数据,数据可能不完整 static Optional<Map<String, Integer>> parseData(List<String> data) { return Optional.empty(); } // 可能出现计算异常 static Optional<Integer> average(Map<String, Integer> map) { return Optional.empty(); } public static void main(String[] args) { int avg = getFilename() .flatMap

java常用开发支持类库

痴心易碎 提交于 2020-07-29 05:38:10
UUID类 UUID是一个生成无重复字符串的程序类(JDK1.5之后出现),这个程序类的主要功能是根据时间戳实现一个自动的无重复的字符串定义(无重复指的是出现重复的概率极低)。 一般在获取UUID时往往都是随机生成一个的内容,可以通过如下方式获取: 获取UUID对象: public static UUID randomUUID() 根据字符串获取UUID内容: public static UUID fromString(String name) public class JavaAPIDemo { public static void main(String[] args) { UUID uid = UUID.randomUUID(); System.out.println(uid.toString()); } } 随机生成一个UUID: d752e1dc-181f-44e7-8ce3-b2369cb14660 对于一些文件进行自动命名处理的情况,UUID非常方便 Optional类 Optional类的主要功能是进行null的相关处理,例如:为了防止程序中出现空指针异常,往往追加有null的验证。 范例 :传统的引用传递 interface IMessage{ String getContent(); } class IMessageImpl implements