Java8新特性详解来瞅瞅吧
Java 8 (又称 jdk1.8)是 Java 语言开发的一个主要版本。Oracle 公司 2014年3月18日 发布 Java 8,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的 Stream API 等;1.主要新特性
Lambda 表达式 - Lambda 允许把函数作为一个方法的参数【函数作为参数传递进方法中】
方法引用 - 方法引用提供了非常有用的语法,可以直接引用已有 Java 类或对象(实例)的方法或构造器,更加紧凑简洁,减少冗余代码
默认方法 - 默认方法就是一个在接口里面有了一个实现的方法
新工具 - 新的编译工具,如:Nashorn 引擎 jjs、类依赖分析器 jdeps
Stream API - 新添加的 Stream API (java.util.stream)把真正的函数式编程风格引入到 Java 中
Date Time API - 加强对日期与时间的处理
Optional 类 - Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常
Nashorn,Java Script 引擎 - Java 8 提供了一个新的 Nashorn javascript 引擎,它允许我们在 JVM 上运行特定的 javascript 应用2.接口的默认方法
static方法
1、使用static修饰接口中的方法并且必须有主体 ;
2、接口的static方法只能够被接口本身调用;接口名.方法名(...);
3、接口的static方法不能够被子接口继承;
4、接口的static方法不能够被实现类覆写及直接调用;
default方法
在接口中可以定义一个使用default修饰有方法体的方法,接口中可以对这个方法提供默认的一种实现。
1、使用default修饰接口中的方法并且必须 有主体;
2、接口的default方法不能够被接口本身调用,需要接口的实例(实现类对象)来调用 ;
3、接口的default方法可以被子接口继承、覆写或者直接调用 ;
4、接口的default方法可以被实现类覆写及直接调用;
在接口中,经过static和default修饰的方法必须有方法体;
static修饰的方法调用方式为类.方法名
default修饰的方法必须是实现类的对象调用
static修饰的方法不能被子接口继承,default修饰的方法可以被子接口继承
并复写方法,就可以创建子接口实现类对象进行调用
使用static和default有什么好处:
Default:类似于抽取,可以多个实现类的统一的业务都抽取到default方法体体实现:
1:接口里写了方法体,所有的实现类和子类都拥有这个方法,都可以调用,不用再每一个都覆写;
2:我们已经开发好功能了,突然要增加需求,原始的方法:接口定义一个抽象方法,每一个实现去写实现类;现在,使用defaul,可以直接在接口中定义方法体,子类都不用动。 3.函数式接口
函数式接口 就是一个有且仅有一个抽象方法,有且仅有一个抽象方法,但是 Object 类的 public 方法除外,default 和 static 是可以搞的;
JDK 1.8 新增加的函数接口:
java.util.function 此包中包含了很多类,用来支持 Java的 函数式编程
函数式接口注解
@FunctionalInterface
我们在函数式接口上面加上此注解后,里面就只能够有一个抽象方法了,当然不加此注解且只有一个抽象方法的接口也是函数式接口,只是没有限定提示而已。4.Lambda 表达式
简单的来说,可以看成是对匿名内部类的简写,使用 Lambda 表达式时,接口必须是函数式接口
特点 + 代码案例 :一个案例学会 Lambda
5.方法引用
静态方法引用
构造方法引用
实例方法引用
代码案例:Java 8 方法引用 简单代码案例
6.Java 8 Stream
Stream 使用一种类似 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象;
这种风格将要处理的元素集合看作一种流 , 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合 等。
常用方法 : 之前文章有代码示例!Java 8 Stream 常用方法 + 代码示例
7.Optional 实例
以前的判断方式 <函数式接口> <变量名> = (参数1,参数2...) -> { //方法体 }
引入 Optional 之后 @Test public static String test8(UserPo user){ // 引入 Optional return Optional.ofNullable(user).map(u -> u.getPassword()).orElse("unkonwn"); }8.本地化日期时间 API
Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理。 @Test public void test9(){ // 处理时区不是必须的情况 获取当前的日期时间 LocalDateTime currentTime = LocalDateTime.now(); System.out.println("当前时间: " + currentTime); LocalDate date1 = currentTime.toLocalDate(); System.out.println("date1: " + date1); Month month = currentTime.getMonth(); int day = currentTime.getDayOfMonth(); int seconds = currentTime.getSecond(); System.out.println("月: " + month +", 日: " + day +", 秒: " + seconds); System.out.println(""); System.out.println("=============================="); System.out.println(""); // 使用时区的日期时间API 获取当前时间日期 ZonedDateTime dd= ZonedDateTime.now(); System.out.println(dd); ZonedDateTime date2 = ZonedDateTime.parse(dd.toString()); System.out.println("date1: " + date2); ZoneId id = ZoneId.of(ZoneId.SHORT_IDS.get("CTT")); System.out.println("ZoneId: " + id); ZoneId currentZone = ZoneId.systemDefault(); System.out.println("当期时区: " + currentZone); }
留波关注 ~~~~~ 么么哒
带鱼和章鱼,对于自由的定义是不一样的海中生物都有些特异功能,章鱼可以把自己从硬币大小的洞里挤出去,深海带鱼从深海里钓上来的时候,会内脏爆裂而死,它们还会攻击被鱼钩钩住的同类。传说在韩国吃活章鱼,用筷子戳它的头,被剪下
冬奥会带火国产滑雪品牌滑雪爱好者们在云南曲靖会泽大海草山国际滑雪场乘坐魔毯。新华社记者胡超摄随着北京冬奥会冬残奥会临近,中国滑雪运动品牌在全球范围内刮起热浪。阿里巴巴旗下跨境电商平台速卖通近日发布数据显
estar坦然边铠比野铠还香!1件装备的加强,拯救了多少战边不知道小伙伴们发现没有呢?从2021年KPL秋季赛季后赛开启,有一个N个赛季都难见的英雄,竟然频繁出现在赛场上。而这个英雄就是铠。刚开始绝大部分战队使用铠都是走打野位的。的确,铠走
Letme为Cryin打抱不平!坦言Cryin跟当年的我一样,一直被质疑LPL转会期全部结束后,不少战队已经官宣了自己的春季赛大名单,很多队伍都或多或少进行了补强,明年LPL的竞争一定会更加激烈。最近前RNG上单Letme在直播的时候就聊到了各大战队新
装甲战争之第八期战争通行证装甲战争是一款非常不错的陆战端游,它由战火互娱全权代理这款相当棒的陆战端游并运营。玩家可以亲自体验冷战至2030年代的现代陆战载具进行对战(PVP)或合作任务(PVE任务)等多种模
崩坏3奶鸭卡池变良心?玩家晒卡自证欧气,主播10万水晶却沉船经历了月初测试服的讨论以后,崩坏3的玩家也如愿迎来了次生银翼和后崩坏书的第二章节。在机制比较特殊的奶鸭卡池落地以后,很多人都加入到了抽卡大军之中,进而出现了许多欧皇级别的玩家。从部
(第二十一期)操作上限最高的英雄系列中篇(1)曜这个英雄算是花里胡俏的那种,他的位移冷却很快,你很难打到他。但他却可以随时突进过来,消耗你一波,再撤回去,这种英雄特性本质上就属于拉扯。曜这个英雄还是最适合打野,上图是常规切人连
eStar巅峰对决带走狼队,清融全程MVP不离手就在昨天,王者季后赛迎来了胜者组决赛,对战双方分别是ester和重庆狼队,双方都是本赛季数一数二的强队,比赛一开局,双方打的非常谨慎,但是再强的英雄也敌不过阵容的强度,第一局Est
3个方法,培养孩子的数学思维今天是精读君陪伴你终身成长的第3015天3岁看大,7岁看老,这句老话很直观地概括了幼儿生理及心理发展的规律。专家认为,36岁是幼儿的黄金期,是影响孩子一生的黄金三年。这个时间段,父
剖宫产后再次怀孕,还能顺产吗?曾几何时,人类发明的剖宫产术风靡一时,拯救了那些可能会因为难产而发生意外的妈妈和孩子。随着二胎三胎政策的开放,越来越多的妈妈有再次生育的要求,剖宫产的弊端也慢慢显现,大家对分娩方式
孩子夜里偷玩手机,谁给支支招?今天早晨不到七点起床,洗漱完毕,叫醒孩子,让他们醒醒盹,一会儿起床吃饭,然后我就去做早饭,。直到饭做熟了,媳妇儿也洗漱完毕了,俩孩子还没起床。我来到孩子卧室,发现枕头旁边放着手机,