
Java8
Neil Parker
一句道友尽沧桑
展开
-
Java反射机制
概念在Java中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法和属性,(重点是私有的方法和属性);这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制。反射API反射API用来生成JVM中的类、接口或则对象的信息。-Class类:反射的核心类,可以获取类的属性,方法等信息。-Fie...原创 2019-09-03 21:32:40 · 225 阅读 · 0 评论 -
Java中的范型
什么是范型泛型,即“参数化类型”。顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。泛型类泛型类型用于类的...原创 2019-09-03 17:17:25 · 706 阅读 · 0 评论 -
Java 8 Optional类深度解析
Optional类包含的方法:of为非null的值创建一个Optional。of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null。如果传入参数为null,则抛出NullPointerException 。//调用工厂方法创建Optional实例Optional<String> name = Optional.of("Sanaulla");//...原创 2018-03-06 19:22:44 · 3674 阅读 · 1 评论 -
java8新特性(九):CompletableFuture多线程并发异步编程
首先因为现在的应用越来越复杂,越来越多模块多系统之间相互依赖,一个操作可能需要使用多个模块或者多个系统提供的多个服务来完成一个功能,如果每个服务顺序的执行,可能需要消耗很多时间,或者前端用户需要得到及时响应,不需要等待所有服务完成便可以返回部分结果,而且现在的计算机处理器性能越来越强大,多核处理器越来越普遍,核心数也越来越多,使用多线程可以更加充分利用硬件的资源,不论是什么原因异步编程应运而生。原创 2016-11-24 16:28:33 · 42704 阅读 · 2 评论 -
java8新特性(七):默认方法
通常来说,一个接口方法就是一个协议, 一但这个接口发布出去, 就不容易修改, 或者增加新到接口方法。 因为一旦修改接口,所有实现接口的类都要修改,否则就会编译不通过。然而java8 又引入了大量的新的接口方法,为了让新的接口兼容老的应用,java8 提供了新的机制,就是默认方法。在接口中可以提供方法默认的实现, 实现接口的类自动继承接口的默认方法。老的应用在升级JDK的时候就不需要修改原来的接口实原创 2016-11-13 09:22:26 · 818 阅读 · 0 评论 -
java8新特性(六):Stream多线程并行数据处理
将一个顺序执行的流转变成一个并发的流只要调用 parallel()方法public static long parallelSum(long n){ return Stream.iterate(1L, i -> i +1).limit(n).parallel().reduce(0L,Long::sum);}并行流就是一个把内容分成多个数据块,并用不不同的线程分别处理每个数据块原创 2016-11-12 22:29:47 · 42545 阅读 · 6 评论 -
java8新特性(五):Stream数据收集
收集器Collectorcollect方法接受的参数 函数称为 收集器,也就是实现数据收集的策略。一般来说,收集器collector会对元素应用一个转换函数,并将结果累积在一个数据结构中,从而产生最终输出。假设一个需求要将交易数据根据货币类型分组java7 之前需要这么写List transactions = new ArrayListMap> resultMap原创 2016-11-10 18:50:02 · 2168 阅读 · 0 评论 -
java8新特性(四):Stream流的使用
过滤出素食List<Dish> vegetarian = menu.stream().filter(Dish::isVegetarian).collect(Collectors.toList());过滤出偶数,并且不重复的元素。List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4);numbers.stream(...原创 2016-11-08 19:56:08 · 26017 阅读 · 12 评论 -
java8新特性(三):Stream流的概念
流就是让程序员可以用声明式编程来处理集合数据的java接口,简单来说你可以把它看成是遍历数据集的高级迭代器,可以透明的并行处理,所以不需要程序员再写任何多线程代码了。java7 之前(指令式编程)List<Dish> menu = new ArrayList<>();List<Dish> lowCaloricDishes = new ArrayList<&...原创 2016-11-06 14:26:44 · 1261 阅读 · 0 评论 -
java8新特性(二):Lambda表达式
一、什么是Lambda表达式 上一篇中已经看到了Lambda表达式的使用场景,这一篇深入学习一下Java8的这个新特性。 首先Lambda说一下表达式的定义:它是一个简洁的可以用于传递的匿名函数。 包含以下一些特性: 1- 它是匿名的: 它不像不通的方法那样有一个明确的名称。 2- 它是一个函数: 因为它不属于某个特定的类,但是它有参数列表、函数体、返原创 2016-10-30 18:02:03 · 871 阅读 · 0 评论 -
java8新特性(一):行为参数化
1、在Java8之前如果需要从一个苹果对象集合中选出绿色的苹果,通常是这么做的。public static List<Apple> filterGreenApples(List<Apple> list){ List<Apple> result = new ArrayList<>(); for(Apple apple: list){ ...原创 2016-10-28 15:43:23 · 996 阅读 · 0 评论