JDK8新特性介绍

JDK8在2015年发布,带来了众多新特性,如Fork/Join并行处理升级,Lambda表达式,Stream API,类型和重复注解,字符串去重以及元空间替换持久代。Lambda简化了函数式接口的使用,Stream API提供高效并发处理,元空间优化了内存管理。升级JDK8需注意第三方库兼容性和JVM参数调整。
摘要由CSDN通过智能技术生成

1.简介

         Oracle甲骨文公司于2015年1月15日发布了新一版JDK8,新版本加入了许多新的特性。这些特性带来了一些改变,可以很大方便Java程序的编写。新特性主要涉及:对于JDK7中Fork/Join并行处理的升级;支持Lambda表达式;添加了Stream API;对于注解的拓展,加入了类型注解、重复注解;在G1回收器中支持字符串去重;内存空间中删除了永久代,引入了元空间。

         
         

2.新特性


2.1 Fork/Join

         JDK7引入了轻量级的数据并行fork/join框架,但用户必须实现自己的算法以完成简单任务/普通任务,在JDK8中提供了并行数组排序的标准实现。相比JDK7,JDK8中fork/join运行效率更高。

2.1.1 并行API

通过这个接口可以对数组通过并行处理的方式进行排序
int[] numbers = {2,1,3};
Arrays.parallelSort(numbers);

2.1.2 Fork/Join基准测试 JDK7 vs JDK8

        通过 Java Microbenchmark Harness project写一个基准测试来对比Java最近的两个版本JDK7&JDK8,可以发现Fork/Join运行效率在单线程环境下没有明显区别,在多线程环境下,运行JDK8的Fork/Join效率明显提高。

2.2 Lambda

        JDK8中引入了函数式编程Lambda表达式,这是Java第一次引入函数式编程的相关内容。对于Java中的函数式接口java.lang.Runnable、java.util.Comparator等,都可以使用Lambda表达式来简化代码。

       以Runnable接口为例,创建一个传统线程代码:

public void runThread() {
    new Thread(new Runnable() {
        public void run() {
            System.out.println("Run!");
        }
    }).start();
}

        使用Lambda表达式后,创建一个线程代码:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值