java1.8的特性,java1.8新特性
1.新增概念:stream、lambda、函数式编程
2.函数式接口(@functionalInterface):只包含一个方法的接口,但可以有默认(default)方法
lambda的本质是实现了函数式接口唯一方法的实现类,只有一个方法才不需要指定
3.lambda无法单独出现,需要一个函数式接口来盛放
4.forEach实现了内部迭代
外部迭代:显式地进行迭代操作,集合元素的访问由外部控制
5.几个常用迭代的时间:
for(String s : list) : 50134
for(int i = 0; i < list.size(); i++) : 74608
for(Iterator iterator = list.iterator; iterator.hasnext();) : 476464
list.forEach(System.out::println) : 1357154
list.forEach(e -> System.out.println(e)) : 87608685
6.java 1.5:泛型、注解、concurrent并发包
java 1.8:lambda表达式、stream
7.lambda表达式是语法糖,为了简化语句、配合stream使用,取代冗长的内部类定义
语法糖:编译器推断出此处需要参数列表 -> 函数体
8.new Thread( new Runnable() {
public void run() {
System.out.println("truth");
}
}).start();
Thread需要一个实现run方法的类 ---> 取消 new Runnable ---> 取消 public void run ---> () -> { }
9.Predicate:谓词
java8添加了util.function包,里面包含多个新的@functionalInterface函数式接口,所谓匿名内部类就是其一个实现
10.匿名内部类:
1.方法引用:有了实现,直接引用方法
但是有了类似Runnable()的实现,new Thread(new Runnable)和new Thread(new Runnable::run)有区别吗。。。好像运行时间会缩短
方法引用不能是一个单独的方法,必须是 “实现类::方法名“
2.lambda:函数式接口只有一个方法,编译器自动识别补全代码
11.lambda表达式又被称为闭包、匿名函数
12.map:将集合类进行转换,一一映射
reduce:将所有值合并为一个,折叠操作;max、min、sum等都是
13.申明变量:父类 = 子类实现
因为必须能够使用所申明变量的所有方法
14.lambda表达式必须使用外界的final类型变量,因为内部类使用外部变量时必须为final类型
可见,lambda是内部类具体方法的实现
java1.8的特性,java1.8新特性相关推荐
- java6特性_Java6的新特性
Java语言特性系列 序 本文梳理了下java6的新特性,相对于java5而言,java6的特性显得少些,分量也不那么重,相当于java5是windows xp,java6有点像vista. 特性列表 ...
- 浅谈php7的重大新特性_PHP7的新特性和源码结构
一.PHP7的新特性 返回值类型声明 类型声明有两种模式: 弱类型校验模式(默认):当传入的参数不符合声明类型时,会首先尝试转换类型. 严格类型校验模式:当传入的参数不符合声明类型时,直接报错. 声明 ...
- c++11新特性_c++11新特性(四)
4.lambda.bind.function 4.1.直接lambda表达式 lamda表达式不仅仅是一个语法新特性,对于没有用过java或C#lamda表达式读者,C++11的lamda表达式在一定 ...
- jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式
1.单例设计模式 1.概念: 设计模式:使用固有的流程或方式设计出来的类接口.枚举等元素 2.设计原则: 1.私有化构造方法[private.protected] 2.类中创建最终对象[唯一不能被赋值 ...
- ES11新特性_Promise.allSettled---JavaScript_ECMAScript_ES6-ES11新特性工作笔记062
然后我们来看一下es11中的这个Promise.allSettled这个新特性. 这个东西是个数组,但是他的数组元素是promise对象 可以看到,我们上面做了两个promise对象 然后我们调用Pr ...
- input html5 新特性,html5 input 新特性
HTML5 拥有多个新的表单输入类型.这些新特性提供了更好的输入控制和验证. 介绍这些新的输入类型: email url number range Date pickers (date, month, ...
- 【JavaSE】JDK新特性(二)————接口新特性,函数式接口(Suppier,Comsumer,Predicate,Function)
文章目录 1.接口新特性 1.1 接口组成更新概述 1.2 接口中的默认方法 1.3 接口中的静态方法 1.4 接口中的私有方法 2. 函数式接口 2.1 函数式接口概述 2.2 函数式接口作为方法的 ...
- php8最新版本特性,PHP8 了解新特性
php 8.0 五大更新重点 效能提升 语法扩充 弹性强类别 更加严谨 调节内套件与新增函数 性能测试图表 1607602943417.jpg PHP 8.0 值得关注的改进 PHP 8.0 引入了 ...
- JDK1.8新特性及常用新特性
JDK1.8的新特性 *Lambda表达式 新的日期API--Date time 引入Optional--防止空指针异常 *接口的默认方法和静态方法 *新增方法引用格式 *新增Stream类 注解相关 ...
- php7.4新特性 多线程,PHP7新特性WhatwillbeinPHP7/PHPNG
PHP7将在2015年10月正式发布,我们来看看官网给出的php7 特性 官网: http://www.php7.ca/ https://wiki.php.com/phpng PHP7新特性( Wha ...
最新文章
- 基于C++的图像散度计算
- 人工智能在电力系统的应用(PPT)
- 深入卷积神经网络背后的数学原理
- 网站推广——网站推广专员面对新站收录展开多角度思考
- Hibernate工作原理(1)
- 我的webpack配置文件
- mkdir用大括号同时建立多个同级和下级目录
- 智慧职教云Java题库_智慧职教作业的答案,云课堂智慧职教java职业证书题库答案,职教云智慧职教题库答案...
- 5g和芯片有什么关系
- 360 面试 一面+二面
- 吴恩达-机器学习-多元线性回归模型代码
- [敛火成丹]Win11Dev-25236.1010专业工作站版-微调
- python 推导式练习题
- ArchiCAD与Revit深度对比
- 新手做网站优化要思考三个本质问题!
- SAP ERP系统排名?SAP ERP办公系统怎么选?什么是用户口碑最好的SAP ERP系统?
- jsp----前后端分离---框架---web应用的构建
- 黄色或微黄色油状物DBCO-PEG5-Acid,DBCO-PEG5-COOH,Azadibenzocyclooctyne-PEG5-acid的化学性质
- ISO20000的产生和意义
- 集装箱储能系统本地服务器,0.5MW-1MWh集装箱储能系统方案
热门文章
- 并发下HashMap头插会造成死循环情况说明
- Java中字符串以小数点分割时无效,String s = “12.34“; String[] ss = split(“.“);分割结果为空
- centos7.9 搭建GitLab服务器
- jsp中文件下载的实现
- Dijkstra算法求最短路径(java)
- Vue项目报错记录解决Property or method “item“ is not defined on the instance
- python简单爬虫手机号_python手机号前7位归属地爬虫代码实例
- 2013NOIP普级组-- 小朋友的数字
- 4.2.4 OS之磁盘管理(磁盘初始化、引导块、坏块的管理)
- keras concatenate_Keras结合Keras后端搭建个性化神经网络模型