jdk8新特性

接口可以定义默认方法和静态方法

为什么要增加一个默认接口呢?

为了兼容旧版本,因为java8在之前的接口中增加了方法,比如在Collection中增加了方法,那么所有容器都得增加方法的实现,但是增加了默认的实现方法,就可以减少改动。

package com.jdk8.newpat;

public interface InterfacePat{
	void method1(String s);
	/*
	 * 接口可以定义默认方法
	 */
	default void defaultMethod() {
		System.out.println("i am interface's default method");
	}
	/**
	 * 接口可以定义静态方法
	 */
	static void staticMethod() {
		System.out.println("i am interface's static method");
	}
}

 Lambda表达式
 

package com.jdk8.newpat;

public class TestMain {
	public static void main(String[] args) {
		LambdaTest lambdaTest = ()->System.out.println("i am method");
		lambdaTest.method();
	}
}
interface LambdaTest {
	void method();
}


输出
i am method

 

forEach使用

package com.jdk8.newpat;

import java.util.ArrayList;
import java.util.List;

public class UserForEach {
	public static void main(String[] args) {
		List<Integer> list =new ArrayList<>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.forEach((one)-> System.out.println(one));
	}
}


输出
1
2
3

Stream,是对集合对象功能的增强,原理利用管道封装操作,减少中间数据的生产和迭代次数。

package com.jdk8.newpat;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class UserStream {
	private static int userStreamMax(List<Integer> list) {
		if(list == null) {
			return -1;
		}
		return list.stream().max((a, b) -> {
            if (a > b) {
                return 1;
            } else return -1;
        }).get();
	}
	private static int userStreamFilter(List<Integer> list) {
		if(list == null) {
			return -1;
		}
		list.stream().filter(integer -> integer<3).forEach(System.out::println);;
		return 0;
	}
	private static void userStreamSoted(List<Integer> list) {
		if(list == null) {
			return;
		}
		list.stream().sorted((a,b)->a-b).forEach(System.out::print);
	}
	public static void main(String[] args) {
		List<Integer> list = Arrays.asList(1, 2, 3, 8, 5, 6);
		System.out.println("max is :"+userStreamMax(list));
		System.out.println("user stream filter");
		userStreamFilter(list);
		System.out.println("user stream soted ");
		userStreamSoted(list);
		
	}
}

新时间API使用 

 private static void userTime(){
        //localDate
        LocalDate localDate = LocalDate.of(2020,8,2);
        System.out.println(localDate.getMonth());
        //LocalTime
        LocalTime localTime = LocalTime.of(21, 48, 0);

        //LocalDateTime
        LocalDateTime localDateTime = LocalDateTime.of(2020, 8, 2,21,50,0);
        LocalDateTime localDateTime1 = LocalDateTime.of(localDate, localTime);
        LocalDateTime localDateTime2 = LocalDateTime.now();

        Instant instant2 = localDateTime2.atZone(ZoneId.systemDefault()).toInstant();
        System.out.println("milli:"+ instant2.toEpochMilli());
        //Instant
        Instant instant = Instant.now();
        System.out.println(instant);
    }

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值