java8有哪些新特性
的有关信息介绍如下:
java8的新特性:
速度更快
代码更少(增加了新的语法Lambda表达式)
强大的Stream API
便于并行
最大化减少控制着异常Optional
Lambda表达式:
java8引入了一个新的操作符"->",该操作符将表达式拆分为两部分:
左侧:Lambada表示表达式的参数列表
右侧:Lambda表示所需要执行的功能
@Test
public void test2() {
Consumer
consumer.accept("我是帅哥");
}
函数式接口
package com.gwolf;
@FunctionalInterface
public interface MyPredicate
public boolean test(T t);
}
方法引用与构造器引用
public void test1() {
Consumer
Consumer
consumer.accept("我是帅哥");
}
Stream API流式计算
Stream API是java8中处理集合的关键抽象概念,它可以指定您希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API对集合数据进行操作,就类似于使用SQL执行的数据库查询。
package com.gwolf;
import com.gwolf.vo.Dept;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class TestStreamAPI {
@Test
public void test1() {
//可以通过Collection系列集合提供提供的Stream()或parallelStream
List
Stream
//通过Arrays中的静态方法stream()方法得到数组流
Dept[] depts = new Dept;
Stream
}
}
接口中的默认方法与静态方法
public interface MyFun {
default String getName() {
return "hello";
}
}
新日期API
package com.gwolf;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class DateUtils {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("今天的日期:" + today);
//明天的日期
LocalDate tomrrow = today.plus(1, ChronoUnit.DAYS);
System.out.println("明天的日期:" + tomrrow);
System.out.println("日期" + tomrrow + "是否在" + today +"之后" + tomrrow.isAfter(today));
System.out.println("日期" + tomrrow + "是否在" + today +"之前" + tomrrow.isBefore(today));
}
public static LocalDate plus(LocalDate localDate,
int between,ChronoUnit chronoUnit) {
return localDate.plus(between,chronoUnit);
}
/**
* 格式化日期
* @param localDate
* @param pattern
* @return
*/
public static String parseDate(LocalDate localDate,String pattern) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);
return localDate.format(dateTimeFormatter);
}
/**
* 比较两个时间相差的月份
* @param one
* @param two
* @return
*/
public static Integer between(LocalDate one,LocalDate two) {
return Period.between(one,two).getMonths();
}
/**
* 字符串转化成日期
* @param strDate
* @param pattern
* @return
*/
public static LocalDate formatDate(String strDate,String pattern) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);
return LocalDate.parse(strDate,dateTimeFormatter);
}
}



