
Java8
文章平均质量分 77
阿弥陀佛僧
知幻即离,不假方便;离幻即觉,亦无渐次。
展开
-
Java8——优化
对HashMap等的优化 在JDK1.7及以前的版本中,HashMap的数据结构是数组+链表,在往HashMap中存放数据对象的时候,会先根据哈希算法对该对象进行计算,得出该对象的哈希码,再根据哈希码计算该对象在HashMap数组中的位置,以确定该对象应该存放的具体位置。然而计算得来的哈希码虽然不会重复,但是计算出来的位置坐标是会重复的,因为HashMap数组的长度不是无限大的(默认为16),...原创 2019-03-21 11:21:11 · 3953 阅读 · 1 评论 -
Java8——新时间日期API
问题 老的时间日期API都存在线程安全问题,因为它们的实例的值都是可变的,多个线程操作同一个实例的时候就会产生线程安全问题。新的时间日期API解决了这个问题,每次改变值都会新创建一个时间日期等实例对象,这样就不存在多个线程操作同一个对象的问题,也就避免了线程安全问题。新的时间日期API都在java.time包下,该包下的实例都是不可变的,也就是说只要变化就会产生新的实例,类似于String,避免...原创 2019-04-08 18:00:47 · 489 阅读 · 0 评论 -
Java8——Stream API及其操作
Stream简介 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。 Stream 用来操作集合或数...原创 2019-04-02 11:55:28 · 1089 阅读 · 0 评论 -
Java8——接口中的默认方法与静态方法
变动 JDK1.7之前在接口中只能有静态常量和抽象方法,JDK1.8中则可以有default修饰的默认方法和static修饰的静态方法,函数式接口中可以有多个默认方法和静态方法,但只能有一个抽象方法public interface MyFun { default String getName() { return "小龙女"; } public static void show(...原创 2019-04-04 17:35:15 · 1195 阅读 · 2 评论 -
Java8——Optional容器类
Optional容器类 Optional<T> 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。常用方法: 1、Optional.of(T t):创建一个 Optional 实例Optional<Employee> op = ...原创 2019-04-04 16:34:19 · 760 阅读 · 1 评论 -
Java8——串行流与并行流
并行流 并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流。Java 8 中将并行进行了优化,我们可以很容易的对数据进行并行操作。Stream API 可以声明性地通过 parallel() 与 sequential() 在并行流与顺序流之间进行切换。Fork/Join框架 Fork/Join 框架:就是在必要的情况下,将一个大任务,拆分(fork)成若干个小任务(拆到...原创 2019-04-04 14:42:10 · 3676 阅读 · 0 评论 -
Java8——方法引用与构造器引用
一、方法引用 若Lambda体中的内容已经有方法实现过了,我们可以使用方法引用,使用方法引用的时候需要保证引用方法的参数列表和返回值类型与我们当前所要实现的函数式接口方法的参数列表和返回值类型保持一致。方法引用是Lambda表达式的另外一种表现形式。 方法引用的语法格式: 1、对象::实例方法名:示例中的几种方式是等效的public void test1() { Consumer<...原创 2019-03-29 19:05:03 · 1431 阅读 · 0 评论 -
Java8——内置函数式接口
内置核心函数式接口 我们每次使用Lambda表达式都需要新建一个函数式接口,而且这个接口大同小异,这是比较繁琐的,Java8为我们内置了四大核心函数式接口函数式接口参数类型返回类型用途Concumer<T>消费型接口Tvoid对类型为T的对象应用操作,抽象方法:void accept(T t)Supplier<T>供给型接口无T...原创 2019-03-22 16:15:42 · 295 阅读 · 0 评论 -
Java8——Lambda基础语法
Lambda操作符 Lambda操作符(->)将Lambda表达式拆分成两部分: 左侧:Lambda表达式的参数列表,对应函数式接口的方法的参数列表 右侧:表达式所需执行的代码逻辑,即Lambda体,对应接口方法的实现 也就是说Lambda表达式需要函数式接口的支持,即只有一个抽象方法的接口,这种类型的接口可以使用@FunctionalInterface注解语法格式 1、无参...原创 2019-03-22 12:00:44 · 297 阅读 · 0 评论 -
Java8——Lambda初体验
简介 Lambda是Java8中支持的一种新的语法格式,Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为一段可以传递的代码(将代码像数据一样进行传递)。使用Lambda表达式可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。示例 需求:查询公司年龄大于35岁的员工信息 实现方式一:提供一个专门的过滤方法public cla...原创 2019-03-21 17:56:19 · 205 阅读 · 0 评论 -
Java8——重复注解和类型注解
重复注解 可以在一个类上或方法上重复多次使用的注解示例 1、自定义可重复注解:使用@Repeatable元注解,参数为可重复注解的容器@Repeatable(MyAnnotations.class)@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.METHOD })@Retention(RetentionPolicy....原创 2019-04-09 19:14:53 · 1966 阅读 · 0 评论