java8学习笔记

创建时间 2014-06-02 18:22:09 修改时间 2014-06-02 21:12:46

拜读了成熟的毛毛虫的java8的文章,收获不小,在此写下阅读笔记。

lambda表达式

  1. 语法:(parameters) -> expression 或者 (parameters) -> { statements; }ObjectReference::methodName <br />
  2. 优点: 代码相对简洁,有利于编译器优化代码,提高多核利用率

interface的默认方法

  1. 目的是解决接口的修改问题,修改的接口与老的实现不兼容
  2. 注意多继承的冲突控制

java.util.stream

  1. 中间方法(filter、map)以及终点方法(collect、sum)
  2. 顺序流与并行流;

类型注解

  1. java 8里面,注解可以应用在任何地方
  2. 类型注解被用来支持在Java的程序中做强类型检查
  3. 配合插件式的check framework,可以在编译的时候检测出runtime error

重复注解

  1. 优点:代码写法更便捷
  2. 允许在同一申明类型(类,属性,或方法)的多次使用同一个注解

泛型的目标类型推断

  1. 写法更便捷

新的日期时间类java.time包

  1. 已有时间库的问题:api复杂,容易写出错误代码;Calendar Date
  2. 已有的第三方时间库:广泛使用的JODA-TIME,还有Date4j

精简版jre

  1. 紧凑的JRE分3种,分别是compact1、compact2、compact3
  2. javac –bootclasspath, or javac –profile

内存管理MetaSpace

  1. 去掉了perm区,引入了MetaSpace,实现动态扩容,容量更大。

新的同步锁StampedLock

  1. 引入乐观锁的概念,在某些场景下,提高了并发效率
  2. 不过学习起来比其他的锁要复杂,eentrantReadWriteLock, ReentrantLock 和synchronized锁