java网站功能新颖_Java 8的8个新功能

java网站功能新颖

java网站功能新颖

注意:确保还检查了我们的详细教程Java 8 Features – ULTIMATE Guide

Jdk 1.8(又名Java 8)今天发布,这意味着它的通用发布版本已经公开发售,开发人员可以从早期发布版本切换到经过测试的版本以供生产使用。 但是,对于繁忙的Java开发人员来说,这对您意味着什么? 好吧,我总结了一些要标记此发行版的要点:

1.Lamda表达式

我从lambda表达式开始,因为它可能是Java 5中的Generics / Annotations之后的语言中最受欢迎的功能。

语法如下:

(argtype arg...) -> { return some expression.. probably using these arguments }

它的作用是在明显的地方(例如在匿名内部类中)减少代码。 (摇摆动作处理程序变得很性感,是的!)

因此,线程可以更改为:

Runnable oldRunner = new Runnable(){
    public void run(){
        System.out.println("I am running");
    }
};
Runnable java8Runner = () ->{
    System.out.println("I am running");
};

与Scala相似,在Lambda中也可以进行类型推断。 考虑以下可用示例:

Comparator c = (a, b) -> Integer.compare(a.length(), b.length());

在此,在实现compare方法时,将推断出a,b(在这种情况下为String,来自Comparator接口)的类型。

用于将块与参数分开的符号->与Scala中已使用的=>十分相似,如果您擅长使用该符号,则没有太多理由进行切换,因为您会感觉到lambda在Java中的实现方式不充分(和冗长),但是对于一个优秀的'ol Java程序员来说,这是要走的路。

2.通用类型的更改和改进

从Lambdas获得线索后,通用集合还可以推断要使用的数据类型。 例如,使用通用集合的方法无需指定通用类型。 因此,以下方法

SomeClass.method();

可以简单地忽略类型信息而调用:

SomeClass.method();

可以通过方法签名来推断类型,这对于嵌套调用(如

myCollection.sort().removeUseless().beautify();

3.流集合类型(

流是一个迭代器,它允许对其调用的集合进行单次运行。 与Lambdas一起,这是另一个值得关注的功能。 您可以使用流对集合执行诸如Filer或map / reduce的功能性操作,这些集合可以使用Stream对象作为单个元素进行流式处理。 流可以根据需要顺序或并行运行。 并行模式利用fork / join框架,可以利用多个内核的功能。

例:

List guys = list.getStream.collect(Collectors.toList())

也可以并行实现为

List guys = list.getStream.parallel().collect(Collectors.toList()

将集合简化为单个项目的另一个不错的例子是调用reduce algorithem。

int sum = numberList.stream().reduce(0, (x, y) -> x+y);

要么,

int sum = numberList.stream().reduce(0, Integer::sum);

4.功能接口(

这些接口包含一些不需要实现的默认方法,可以直接从该接口运行。 这对现有代码有帮助-更改接口不必使实现它的所有类都实现新方法。 这类似于Scala中的Traits,功能接口将与lambda兼容。

5. Nashorn –

这是使我们能够在JVM上运行javascript的javascript引擎。 它类似于运行Node.js的chrome提供的V8引擎。 它与Node.js应用程序兼容,同时还允许服务器上运行的javascript代码调用实际的Java库。 至少可以说这令人兴奋,因为它直接将Node.js的可伸缩性和异步特性与安全且广泛的服务器端Java中间件结合在一起。

6.日期/时间更改(

http://download.java.net/jdk8/docs/api/java/time/package-summary.html

日期/时间API移至java.time包,并遵循Joda时间格式。 另一个好处是,大多数类都是线程安全的并且是不可变的。

7.类型注释

现在,注释可用于装饰通用类型本身。

例如:

List<@Nullable String>

这并非总是希望的,但在某些情况下可以证明是有用的。 除了装饰泛型类型之外,它还可以用于构造函数和强制转换。

new @NonEmpty @Readonly List(myNonEmptyStringSet)
new @Interned MyObject()

myString = (@NonNull String) myObject;

甚至可以注释数组对象:

@NotNull String[] arr;

包含RuntimeVisibleTypeAnnotations和RuntimeInvisibleTypeAnnotations属性,这些属性使.class文件保存注释信息。

8.Other –(很高兴)更改

在TypeName,GenericString等的支持下,反射api有所增加。

String.join()方法是一个受欢迎的补充,因为创建了许多自行创建的实用程序类。 所以,下面的例子

String abc= String.join(" ", "Java", "8");

将被评估为“ Java 8”。

在“集合”包中,对Comparator接口进行了改进,并添加了诸如反转,比较和随后的COmparing之类的方法,可轻松自定义多个字段的比较。 诸如Concurrency和NIO之类的其他库也已更新,但值得关注,并且与api中的更改保持一致。

总体而言,Java8经过深思熟虑,正在使主流Java简洁明了,并选择了Scala / Clojure的某些出色部分来改进其语法并解决人们所寻求的功能。

翻译自: https://www.javacodegeeks.com/2014/03/8-new-features-for-java-8.html

java网站功能新颖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值