尚公开课第24季java8新特性全剖析_第1页
尚公开课第24季java8新特性全剖析_第2页
尚公开课第24季java8新特性全剖析_第3页
尚公开课第24季java8新特性全剖析_第4页
尚公开课第24季java8新特性全剖析_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java8新特性Lambda表达函数式接方 与构造Stream接口中的默认方法与新时间日期其他新特Java8其中最 的为Lambda表达式与Stream为什么使用LambdaLambda是一个函数LambdaLambda 类到Lambda的转LambdaLambdaLambda表达式在Java语言中引入了一个新的语法元为Lambda操作符或剪头操作符。它将Lambda分为左侧:Lambda

LambdaLambdaLambda语法格式二:Lambda语法格式三:LambdaLambda语法格式四:Lambda语法格式五:当Lambda体只有一条语句时,return与大括号上述Lambda表达式中的参数类型都是由编译器推断以编译,这是因为javac根据程序的上下文,在Lambda( 函数式接口中使用泛型作为参数传递Lambda表达作为参数传递Lambda收Lambda表达式的参数类型必须是与该Lambda表达式兼容的函数式接口Java内置四 函数式接Tvoidaccept(Tt)无T含方法:TTR法:Rapply(Tt);Tboolean值。包含方法booleantest(Tt);BiFunction<T,U,T,R对类型为T,U参数应用操作,返回R类型的结Rapply(Tt,U(Function子接口)TT对类型为T的对象进行一元运算,并返回T类型的Tapply(T(BiFunctionT,T对类型为T的对象进行二元运算,并返回T类型的Tapply(Tt1,TT,对类型为T,U参数应用操作。包含方法voidaccept(Tt,UTintlongdouble、值的函R参数分别为int、long方 与构造当要传递给Lambda体的操作,已经有实现的方法了,可以使用方 :使用操作符“::”将方法名和对象或类的名字分隔开来。如下三种主要使用情况对象::实例方法类::静态方法类::实例方法 格式 格式:type[]强大的Stream了解个则是StreamAPI(java.util.stream.*)。StreamJava8使用StreamAPI对集合数据进行操作,就类似于使用SQL执行的数据库查询。也可以使用StreamAPI来并行执行操作。简而言之,StreamAPI提供了一种高效且易于使用的处理数据的方式。什么是流(Stream)到底是什么呢? 注意①Stream自己不 元素②Stream不会改变源对象。相反,他们会返回一个持有结果的新Stream③Stream操作是延迟执行创建

Stream一个数据源(如:集合、数组),获取一个一个中间操作链,对数据源的数据进行处终止操作(终端操作)一个终止操作,执行创建Java8Collection口被扩展,提供了defaultStream<E>streamdefaultStream<EparallelStreamJava8Arrays静态方stream(staticTStream<T>stream(TarrayIntStreamstream(int[]LongStreamstream(long[]DoubleStreamstream(double[]可以使用静态方Stream.of过显示值publicstatic<T>Stream<T>of(T.values)由函数创建流:创建无限可以使用静态方法 te()Stream.generate(),创建无限publicstatic<T>Stream<T>i te(finalTseed,finalUnaryOperator<T>f)publicstatic<T>Stream<T> r<T>s)Stream filter(PredicateLambdadistinct()hashCodeequalslimit(longskip(longn不足n个,则返回一个空流。与limit(n)互补Stream f)素上,产生一个新的DoubleStream。LongStreamf)Stream Stream值,例如:List、Integer,甚至是void。 anyMatch(Predicatep)noneMatch(Predicate c)c)c)内部迭代(使用Collectionreduce(Treduce(Tiden,BinaryOperator备注:map和reduce的连接通常称为map-reduce模式, Stream collect(Collectorc)Collector接口中方法的实现决定了如何对流执行收集操作(如收集到List、Set、Map)。但Collectors用类提供了很多静态longcount=值doubleavg=Stringstr=Optional<Emp>min=从一个作为累加器的初始值流中元素逐个结合,从而归Map<K,Map<Emp.Status,List<Emp>>map=Map<Boolean,并行流就是把一个内容分成多个数据块,并用不同的线行操作。StreamAPI可以 性地通过parallel()与sequential()在并行流与顺序流之间进行切换。了解Fork/JoinFork/Join框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行join汇总.Fork/Join框架与传统线程池的区采用“工作窃取”模式(work-当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到程队列中,然后再从,fork/joinfork/join.新时间日期使用LocalDate、LocalTime、注:ISO-8601日历系统是国际标准化组LocalDatelocalDate=LocalTimelocalTime=LocalTime.now();LocalDateTimelocalDateTime=LocalDateTime.now();LocalDatelocalDate=LocalDate.of(2016,10,LocalTimelocalTime=LocalTime.of(02,22,56);LocalDateTimelocalDateTime=LocalDateTime.of(2016,10,26,12,10,55);plusDays,plusMonths,向当前LocalDate对象添加几天、minusDays,minusMonths,从当前LocalDateplus,添加或减少一个Duration或份修改为指定的值并返回新的LocalDate对象获得星期几(返回一个获得月份返回一个Month获得两个日期之间的Period对象,或者指定ChronoUnits的数字Instant Duration用TemporalAdjusterJava8中加入了对时区的支ZonedDate、ZonedTime、例如:Asia/Shanghai等of(id):用指定的时区信息获取ZoneId对象类无接口中的默认方法与静Java8“默认方法”,默认方法使用default接口中具有相同名称和参数的默认 被忽略接口。如果一个父接口提供一个默认方法,而另一个接接口默认方法的”类优先”原Java8例如OptionalOptional<T(java.util.Optional原来用null表示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论