java8新特性
java8学习使用
smileTimLi
一只站在树上的鸟儿,从来不会害怕树枝断裂,因为它相信的不是树枝,而是它自己的翅膀
展开
-
商品类目树状图 -- 通过递归生成
1、数据库相关结构CREATE TABLE `pms_category` ( `cat_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类id', `name` char(50) DEFAULT NULL COMMENT '分类名称', `parent_cid` bigint(20) DEFAULT NULL COMMENT '父分类id', `cat_level` int(11) DEFAULT NULL COMMENT '层级',...原创 2020-10-28 17:09:15 · 1258 阅读 · 0 评论 -
Java获取N天前,N天后的日期(如3天)
一. JDK8之前 - CalendarJdk1.1 之后, 带来了java.util.Calendar工具类, 用于处理时间.1.1 某(3)天前:取负值Calendar calendar1 = Calendar.getInstance();SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");calendar1.add(Calendar.DATE, -3);String three_days_ago...转载 2020-06-12 18:00:39 · 16149 阅读 · 0 评论 -
SimpleDateFormat的线程安全问题与解决方案
SimpleDateFormat的线程安全问题与解决方案1. 线程不安全场景描述 SimpleDateFormat(下面简称sdf)类内部有一个Calendar对象引用,它用来储存和这个sdf相关的日期信息,例如sdf.parse(dateStr), sdf.format(date) 诸如此类的方法参数传入的日期相关String, Date等等, 都是交给Calendar引用来储存的. 这样就会导致一个问题,如果你的sdf是个static的, 那么多个thread 之间就会共享...转载 2020-06-12 17:41:42 · 222 阅读 · 0 评论 -
Java8 函数式接口学习
Java8 函数式接口一览// Function<T, R> -T作为输入,返回的R作为输出 Function<String,String> fun = (x) -> {System.out.print(x+": ");return "Function";}; System.out.println(function.apply("hello world"));//Predicate<T> -T作为输入,返回的boolean值作为输出Predic原创 2020-06-12 14:42:38 · 158 阅读 · 0 评论 -
Optional干掉空指针
简介空指针异常是导致Java应用程序失败的最常见原因。 为了解决空指针异常更加优雅,Java8 提供了Optional类库。 Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。 Optional提供很多有用的方法,这样我们就不用显式进行空值检测。代码示例1、Optional.of()或者Optional.ofNullable():创建Optional对象,差别在于of不允许参数是null,而ofNullable则无限制。// 参数不能是nullOptio..原创 2020-06-12 14:36:11 · 198 阅读 · 0 评论 -
Stream API 上
Stream API 上使用流创建流在使用流之前,首先需要拥有一个数据源,并通过StreamAPI提供的一些方法获取该数据源的流对象。数据源可以有多种形式:1. 集合这种数据源较为常用,通过stream()方法即可获取流对象:List<Person> list = new ArrayList<Person>(); Stream<Person> stream = list.stream();2. 数组通过Arrays类提供的静态函数st原创 2020-06-12 13:31:10 · 195 阅读 · 0 评论 -
Stream API 下
Stream API 下Collector 收集收集器用来将经过筛选、映射的流进行最后的整理,可以使得最后的结果以不同的形式展现。collect方法即为收集器,它接收Collector接口的实现作为具体收集器的收集方法。Collector接口提供了很多默认实现的方法,我们可以直接使用它们格式化流的结果;也可以自定义Collector接口的实现,从而定制自己的收集器。归约流由一个个元素组成,归约就是将一个个元素“折叠”成一个值,如求和、求最值、求平均值都是归约操作。一般性归约...原创 2020-06-12 13:30:56 · 157 阅读 · 0 评论 -
java8 函数式接口编程详解
java8 lambda 表达式详解lambada 表达式实质上是一个匿名方法,但该方法并非独立执行,而是用于实现由函数式接口定义的唯一抽象方法 使用 lambda 表达式时,会创建实现了函数式接口的一个匿名类实例 可以将 lambda 表达式视为一个对象,可以将其作为参数传递1. 函数式接口函数式接口是仅含一个抽象方法的接口,但可以指定 Object 定义的任何公有方法。以下是...转载 2019-12-01 09:56:58 · 201 阅读 · 0 评论 -
java8 时间的简单使用 5年后
/** * 5年后 */ @Test public void test01() { Calendar calendar1 = Calendar.getInstance(); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd"); calend...原创 2019-11-04 11:20:46 · 767 阅读 · 0 评论 -
java8 新的日期api
简介Java 8中的时区操作被很大程度上简化了,新的时区类java.time.ZoneId是原有的java.util.TimeZone类的替代品。ZoneId对象可以通过ZoneId.of()方法创建,也可以通过ZoneId.systemDefault()获取系统默认时区:ZoneId shanghaiZoneId = ZoneId.of("Asia/Shanghai"...原创 2019-11-04 11:13:16 · 441 阅读 · 0 评论 -
java8 stream api 一览表
List 转 Stream// 转streamlist.stream()// 并发处理list.parallelStream()filter(过滤)Stream<T> filter(Predicate<? super T> predicate);map(元素转换)<R> Stream<R> map(Func...原创 2019-11-04 10:23:36 · 213 阅读 · 0 评论