您的位置:首页 > 编程语言 > Java开发

java8新特性整理

2017-04-14 22:40 225 查看
Java 8 新特性

1.允许在接口中有默认方法实现

使用default关键字,为接口声明添加非抽象的方法实现。这个特性又被称为扩展方法。

interface Formula

 {

    double calculate ( int a );

    default double sqrt ( int a )

 {

        return Math.sqrt ( a );

    }

}

2.Lambda表达式
http://www.cnblogs.com/WJ5888/p/4618465.html 方法中可以接受以函数为单元的参数。

(参数1,参数2)->  函数();

(String v1, String v2) -> Integer.compare(v1.length(), v2.length()));

3.函数式接口

一个接口,这个接口具有唯一的一个抽像方法,称为函数式接口。
Comparator<String> comp = (v1,v2) -> Integer.compare(v1.length(), v2.length());

Lambda表达式被赋值给了comp函数接口变量

4.方法引用

需要执行的代码在某些类中已经存在,这时我们没必要再去写Lambda表达式,可以直接使用该方法,
System.out::println == x -> System.out.println(x)
构造方法的引用;Class::new

5.Streams流操作

Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等,Stream 会隐式地在内部进行遍历,做出相应的数据转换。
Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。
而和迭代器又不同的是,Stream 可以并行化操作,迭代器只能命令式地、串行化操作。顾名思义,当使用串行方式去遍历时,每个 item 读完后再读下一个 item。而使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后将结果一起输出。Stream 的并行操作依赖于 Java7 中引入的 Fork/Join 框架(JSR166y)来拆分任务和加速处理过程。 https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/
清单 4. 构造流的几种常见方法
// 1. Individual values

Stream stream = Stream.of("a", "b", "c");

// 2. Arrays

String [] strArray = new String[] {"a", "b", "c"};

stream = Stream.of(strArray);

stream = Arrays.stream(strArray);

// 3. Collections

List<String> list = Arrays.asList(strArray);

stream = list.stream();

6.全球化功能
http://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.html
Java 8 版本还完善了全球化功能:支持新的 Unicode 6.2.0 标准,新增了日历和本地化的 API,改进了日期时间的管理等。
Java 的日期与时间 API 问题由来已久,Java 8 之前的版本中关于时间、日期及其他时间日期格式化类由于线程安全、重量级、序列化成本高等问题而饱受批评。Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。新的 java.time 中包含了所有关于时钟(Clock),本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。历史悠久的
Date 类新增了 toInstant() 方法,用于把 Date 转换成新的表示形式。这些新增的本地化时间日期 API 大大简化了了日期时间和本地化的管理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java8 新特性 整理 jdk