在对外对接的时候,通常会碰到签名方式, 然后签名的时候,要求按照参数名称进行排序. 比如参数为 c=22&a=1, 需要将结果排序为a=1&c=22, 然后再进行别的运算. 可以使用jdk1.8特性stram进行操作, 参考如下语句: String param = "x=4&a=&ca=2&acb=3&sign=xxx"; Object result = sortParamByKey(param.split("&&quo…
/** * 创建md5摘要,规则是:按参数名称a-z排序,遇到空值的参数不参加签名. */ private function createSign($parameters,$key) { $signPars = ""; ksort ( $parameters ); foreach ( $parameters as $k => $v ) { if ("" != $v && "sign" != $k) { $signPars .…
不是数据结构 它没有内部存储,它只是用操作管道从 source(数据结构.数组.generator function.IO channel)抓取数据. 它也绝不修改自己所封装的底层数据结构的数据.例如 Stream 的 filter 操作会产生一个不包含被过滤元素的新 Stream,而不是从 source 删除那些元素. 所有 Stream 的操作必须以 lambda 表达式为参数 不支持索引访问 你可以请求第一个元素,但无法请求第二个,第三个,或最后一个.不过请参阅下一项. 很容易生成数组或者…
JDK1.8新特性——Stream API 摘要:本文主要学习了JDK1.8的新特性中有关Stream API的使用. 部分内容来自以下博客: https://blog.csdn.net/icarusliu/article/details/79495534 概述 是什么 Stream API(java.util.stream)把真正的函数式编程风格引入到Java中.这是目前为止对Java类库最好的补充,因为Stream API可以极大提供Java程序员的生产力,让程序员写出高效率.干净.简洁的代…
jdk1.8新特性知识点: Lambda表达式 Stream API 函数式接口 方法引用和构造器调用 接口中的默认方法和静态方法 新时间日期API default   Lambda表达式     Lambda就是把我们之前一些复杂的代码更简单化,比如集合内容的判断比较/排序,我们之前可以进行遍历判断取出我们想要的数据或者写一个匿名内部类compareto等方法进行取出我们想要的数据,实际它们内部也就是进行了一些判断比较最终返回给了我们想要的结果.     举例:场景一         现在我们…
异常 jdk1.7对try--catch--finally的异常处理模式进行了增强,下面我们依次来看增强的方面. 1. 为了防止异常覆盖,给Throwable类增加了addSuppressed方法,可以将一个异常信息追加到另一个异常信息之后: /** * 这是第一种防止前面异常被覆盖的方法,通过在finally块中判断前面是否有异常抛出 * 如果有则最终抛出的异常为原来的异常,没有则最终抛出的异常为finally块中的异常. * 此时只能抛出一种异常信息. * @param fileName *…
JDK1.8新特性之Stream类初识 import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; public class StreamDemo { public static void main(String[] args) { Stream<String> stre…
/* jdk1.5新特性之------->可变参数 需求: 定义一个函数做加法功能(函数做几个数据 的加法功能是不确定). 可变参数的格式: 数据类型... 变量名 可变参数要 注意的细节: 1. 如果一个函数 的形参使用上了可变参数之后,那么调用该方法的时候可以传递参数也可以不传递参数. 2. 可变参数实际上是一个数组对象. 3. 可变参数必须位于形参中的最后一个参数. 4. 一个函数最多只能有一个可变 参数,因为可变参数要位于形参中最后一个位置上. */ public class Demo4…
通常情况下,函数的参数是传值参数:即参数的值在它被传递给函数之前被确定.但是,如果我们需要编写一个接收参数不希望马上计算,直到调用函数内的表达式才进行真正的计算的函数.对于这种情况,Scala提供按名称参数调用函数. 示例代码如下: 结果: 在代码中,如果定义函数的时候,传入参数不是传入的值,而是传入的参数名称(如代码中使用t: => Long而不是t: Long),在调用该函数时,不会立即执行和参数有关的计算,而是到参数真正使用到的时候才进行计算. 结果说明:主函数调用delayed函数后,并…
近期由于新冠疫情的原因,不能出去游玩,只能在家呆着.于是闲来无事,开始阅读JDK1.8的源代码.在开始之前也查询了以下JDK1.8的新特性,有针对性的开始了这段旅程. 只看不操作,也是不能心领神会的.而且好脑子不如烂笔头.在这里记载一下自己的学习成果.也算是做一下总结吧. 在正文开始之前先看看JDK1.8都有哪些新特性? 1.Lambda表达式 2.方法引用 3.函数式接口 4.默认方法 5.Stream 6.Optional类 7.Nashorm javascript引擎 8.新的日期时间AP…