首页 > 编程语言 >Java 8 新特性

Java 8 新特性

时间:2023-08-28 21:45:34浏览次数:43  
标签:Java 函数 特性 接口 引用 方法 Class

Java 8 新特性

Java 8 新特性

主要是函数式编程!

Java8 新增了非常多的特性,我们主要讨论以下几个:

  • Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。

  • 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

  • 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。

  • 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

  • Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

  • Date Time API − 加强对日期与时间的处理。

  • Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

  • Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

Lambda表达式

Lambda表达式

  • 免去匿名内部类的书写麻烦,更简洁

  • 使得函数可以作为参数传递给另一个方法

:注意变量作用域问题。

方法引用

方法引用

  • 构造器引用:Class::new,或者更一般的Class::new

  • 静态方法引用:Class::static_method

  • 特定类的任意对象的方法引用:Class::method

  • 特定对象的方法引用:instance::method

函数式接口

函数式接口

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。

函数式接口可以被隐式转换为 lambda 表达式。

标签:Java,函数,特性,接口,引用,方法,Class
From: https://www.cnblogs.com/shimmer-ghq/p/17663448.html

相关文章

  • Java进阶篇-2
    不可变集合创建不可变集合的应用场景如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践当集合对象被不可信的库调用时,不可变形式是安全的List<String>list=List.of("张三","李四","王五","赵六");Map<String,String>map=Map.of("张三","李四",&quo......
  • java.net.BindException: 地址已在使用
    java.net.BindException:地址已在使用,也可以说是端口被占用,通常出现在启动服务的时候。1、出错地方如图所示:2、执行netstat-alnp|grep81253、kill-9  1899   ......
  • 原来你是这样的JAVA--目录
    .NET程序员转Java过程中遇到的一些经验分享,陆续更新中。原来你是这样的Java[01]--基础一瞥原来你是这样的Java[02]-包、传参、构造器原来你是这样的Java[03]-继承、多态、抽象类更新中本人公众号[敬YES]同步更新,欢迎大家关注~觉得写的好的话,赞赏一下,是对博主......
  • 20 JavaScript和HTML交互
    20JavaScript和HTML交互在HTML中可以直接在标签上给出一些事件的触发.例如,页面上的一个按钮.<inputtype="button"value="点我"/>我们能够知道此时在页面中会产生一个按钮.但是该按钮无论如何进行点击.都不会触发任何事件.但,此时我要告诉你,人家其实触发了.只是......
  • javascript学习笔记day7
    今天学了挺多新东西的,在学校教的东西都是很老了东西了,果然互联网完全真能靠自学,下面是今天的笔记varletconst优先使用const,即不会改变的变量,假设后续发现这个变量会改变就再使用letconsole.log打印属性console.dir打印信息innerText只修改标标签内容不解析标签innerHTML识......
  • Java快速入门
    网上有很多的相关资料,这里也就不做过多概念的论述了本人电脑:目前使用win11,内存64,处理器12900hJava简介Java由詹姆斯高斯林开发,原本归属于SUN公司(斯坦福网络),后来SUN公司被Oracle(甲骨文)收购,目前版本归属于Oracle,现在的java版本已经很多了,目前市面上使用......
  • 19 JavaScript的hook
    19JavaScript的hook什么叫hook?Hook技术又叫钩子函数,在系统没有调用该函数之前,钩子程序就捕获该消息,钩子函数先得到该函数的控制权,这时钩子函数既可以改变该函数的执行行为,还可以强制结束消息的传递,简单来说。就是把系统的程序拉出来,来变成我们自己执行的片段。我们可以控制执行......
  • idea 2021创建java web项目
    1创建普通Java项目2添加框架2.1添加框架2.2选择webapplication2.3新建如下文件夹在WEB-INF目录下,新建classes和lib文件夹,分别用于之后存字节码文件和jar包3编辑项目结构设置相关文件保存路径3.1设置编译文件保存路径3.2设置jar包保存路径12344t......
  • Java Mail Log输出
    日志输出实现类importorg.apache.log4j.Logger;importjava.io.PrintStream;/***扩展PrintStream,用于输出JavaMail打印Debug日志*<p>*/publicclassMailPrintStreamextendsPrintStream{privatefinalLoggerlogger;publicMailPrintStream(Logge......
  • Joda-Time java时间工具
    引入依赖<!--日期时间工具--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.1</version></dependency>使用方式:DateTimedt=new......