3 Coder_py

尚未进行身份认证

暂无相关简介

等级
TA的排名 1w+

Java-8-Optional类

Java-8-Optional类java8新特性之Optional类空指针异常是一个运行时异常,对于这一类异常,如果没有明确的处理策略,那么最佳实践在于让程序早点挂掉,但是很多场景下,不是开发人员没有具体的处理策略,而是根本没有意识到空指针异常的存在。当异常真的发生的时候,处理策略也很简单,在存在异常的地方添加一个if语句判定即可,但是这样的应对策略会让我们的程序出现越来越多的null判定,我...

2020-02-06 11:07:05

Java-8-IntStream接口

Java-8-IntStream接口interface IntStream extends BaseStream<Integer, IntStream>下面这段代码计算菜单的热量:int calories = menu.stream().map(Dish::getCalories).reduce(0, Integer::sum);这段代码有一个问题,它有一个暗含的...

2020-02-06 11:05:11

Java-8-Collectors类

Java-8-Collectors类final class Collectors思维导图:Stream 的核心在于Collectors,即对处理后的数据进行收集。Collectors 提供了非常多且强大的API,可以将最终的数据收集成List、Set、Map,甚至是更复杂的结构(这三者的嵌套组合)。toList源码:public static <T> Colle...

2020-02-05 10:52:37

Java-8-Stream接口

Java-8-Stream接口interface Stream思维导图:生成 StreamStream.of静态方法(源码): public static<T> Stream<T> of(T t) { return StreamSupport.stream(new Streams.StreamBuilderImpl<>(t)...

2020-02-03 16:53:31

Java-8-Function

Java-8-Functioninterface Function<T, R>源码:@FunctionalInterfacepublic interface Function<T, R> { R apply(T t); default <V> Function<V, R> compose(Functi...

2020-02-02 20:47:02

Java-8-UnaryOperator

Java-8-UnaryOperatorUnaryOperator extends Function<T, T>源码:@FunctionalInterfacepublic interface UnaryOperator<T> extends Function<T, T> { static <T> UnaryOperat...

2020-02-02 20:46:16

Java-8-Supplier

Java-8-Supplierinterface Supplier源码:@FunctionalInterfacepublic interface Supplier<T> { T get();}这个接口,只是为我们提供了一个创建好的对象,这也符合接口的语义的定义,提供者,提供一个对象,直接理解成一个创建对象的工厂,就可以了简单例子public ...

2020-02-02 20:45:38

Java-8-Consumer

Java-8-Consumerinterface ConsumerConsumer的作用顾名思义,是给定义一个参数,对其进行(消费)处理,处理的方式可以是任意操作源码:public interface Consumer<T> { //对给定的参数T执行定义的操作 void accept(T t); //对给定的参数T执行定义的操作执行再继续...

2020-02-02 20:44:38

Java-8-Predicate

Java-8-PredicateInterface PredicatePredicate函数式接口的主要作用就是提供一个test方法,接受一个参数返回一个布尔类型接口源码:@FunctionalInterfacepublic interface Predicate<T> { /** * 具体过滤操作 需要被子类实现. * 用来处理参数T是否...

2020-02-02 13:03:19

Java-8-流(2)

Java-8-流(2)map如果有一个函数可以将一种类型的值转换成另外一种类型, map 操作就可以使用该函数,将一个流中的值转换成一个新的流使用 for 循环将字符串转换为大写 public static void main(String[] args) { List<String> collected = new ArrayList<>();...

2020-01-30 21:06:17

Java-8-流(1)

Java-8-流(1)外部迭代与内部迭代Java 程序员在使用集合类时,一个通用的模式是在集合上进行迭代,然后处理返回的每一个元素在数字集合里面统计大于100的数有几个 public static void main(String[] args) { List<Integer> data = Number_Data.createData(); ...

2020-01-30 14:18:56

Java8-Lambda

Java8-LambdaJava 8 的最大变化是引入了 Lambda 表达式——一种紧凑的、传递行为的方式引出Lambda表达式例子:使用匿名内部类将行为和按钮单击进行关联button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { ...

2020-01-29 17:21:05

Java8笔记(7)

Java8笔记(7)函数式编程假设有这样一个系统,它不修改任何数据。维护这样的一个系统将是一个无以伦比的美梦,因为你不再会收到任何由于某些对象在某些地方修改了某个数据结构而导致的意外报告。如果一个方法既不修改它内嵌类的状态,也不修改其他对象的状态,使用 return 返回所有的计算结果,那么我们称其为纯粹的或者无副作用的更确切地讲,到底哪些因素会造成副作用呢?简而言之,副作用就是函数的效果已...

2020-01-28 20:11:17

Java8笔记(6)

Java8笔记(6)CompletableFuture:组合式异步编程如果你的意图是实现并发,而非并行,或者你的主要目标是在同一个CPU上执行几个松耦合的任务,充分利用CPU的核,让其足够忙碌,从而最大化程序的吞吐量,那么你其实真正想做的是避免因为等待远程服务的返回,或者对数据库的查询,而阻塞线程的执行,浪费宝贵的计算资源,因为这种等待的时间很可能相当长Future 接口,尤其是它的新版实现...

2020-01-28 13:39:27

Java8笔记(5)

Java8笔记(5)用 Optional 取代 null如何为缺失的值建模假设你需要处理下面这样的嵌套对象,这是一个拥有汽车及汽车保险的客户public class Person { private Car car; public Car getCar() { return car; }}public class Car { private Insu...

2020-01-28 10:10:23

Java8笔记(4)

Java8笔记(4)默认方法传统上,Java程序的接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实情况是,现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进行修改Java 8为了解决这一问题引入了一种新的...

2020-01-27 21:08:24

Java8笔记(3)

Java8笔记(3)从匿名类到 Lambda 表达式的转换例子:创建Runnable对象的匿名类public class M1 {// 将实现单一抽象方法的匿名类转换为Lambda//表达式 public static void main(String[] args) { //传统的方式,//使用匿名类 Runnable runnab...

2020-01-27 17:19:52

Java8笔记(2)

Java8笔记(2)用流收集数据收集器函数式编程相对于指令式编程的一个主要优势:你只需指出希望的结果——“做什么”,而不用操心执行的步骤——“如何做”收集器用作高级归约收集器非常有用,因为用它可以简洁而灵活地定义 collect 用来生成结果集合的标准。更具体地说,对流调用collect 方法将对流中的元素触发一个归约操作(由 Collector 来参数化)一般来说, Collecto...

2020-01-27 15:59:02

Java8笔记(1)

Java8笔记(1)流流是什么流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。你可以把它们看成遍历数据集的高级迭代器。用到的数据例子:Dish 类public class Dish { private final String name; private final boolean vegetarian...

2020-01-26 20:11:38

Java多线程(10)

Java多线程(10)非阻塞队列ConcurrentHashMapHashMap在多线程条件下的不安全性:public class MyService { public HashMap map = new HashMap();}public class Thread_1 extends Thread{ private MyService myService;...

2020-01-23 21:59:37

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。