Java8
文章平均质量分 71
SunTree_X
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java8:函数式接口
在正式介绍Lambda表达式之前有一些概念是我们需要了解的。 函数式接口:仅仅声明了一个抽象方法的接口。说明:函数式接口中除了抽象方法外,还可以有其他方法,但是必须被static或者default中修饰,且要有方法体。Java API中常见的一些函数式接口public interface Comparator<T> { // 抽象方法 int compare(T o1, T o2);原创 2017-04-28 20:47:35 · 760 阅读 · 0 评论 -
Java8:Lamdba表达式与局部变量
关于Lamdba表达式中的局部变量问题 Lamdba表达式中可以使用外层作用域中定义的变量,就像匿名内部类。 如下:int portNumber = 1337; Runnable r = () -> System.out.println(portNumber);但是Lambda对于变量有一些限制,Lamdba可以没有限制的使用实例变量和静态变量,但是局部变量必须显示声明为final或者事实上是fi原创 2017-04-28 21:07:25 · 2418 阅读 · 1 评论 -
Java8:Lambda简单实战
Lambda表达式可以理解为一种匿名函数:它没有名称,但是由参数列表,函数主体,返回类型,当然可能还有一个可以抛出的异常的列表。 这里我们从一个排序问题入手——用不同的排序策略来给一个Apple列表排序,我们从一个原始粗暴的解决方法一步步简明清晰化。这里会用到一系列概念:行为参数化,匿名类,Lambda表达式和方法引用。下面是Apple类的定义: public static class App原创 2017-04-28 21:34:28 · 1733 阅读 · 0 评论 -
Java8:复合Lambda 表达式
Java 8的好几个函数式接口都有为方便而设计的方法。具体而言,许多函数式接口,比如用于传递Lambda表达式的Comparator、Function和Predicate都提供了允许你进行复合的方法。这是什么意思呢?在实践中,这意味着你可以把多个简单的Lambda复合成复杂的表达式。比如,你可以让两个谓词之间做一个or操作,组合成一个更大的谓词。而且,你还可以让一个函数的结果成为另一个函数的输入。1原创 2017-04-28 21:43:08 · 788 阅读 · 0 评论 -
Java8:Stream
背景: 集合是Java中使用最多的API。几乎每个Java应用程序都会制造和处理集合。集合对于很多编程任务来说都是非常基本的:它们可以让你把数据分组并加以处理。 但是Java8之前,集合操作还是算不上完美。 比如,以下SQL查询语句就可以选出热量较低的菜肴名称:SELECT name FROM dishes WHERE calorie < 400。 但是Java集合中,你需要自己实现迭代器根据原创 2017-04-28 23:12:40 · 513 阅读 · 0 评论 -
Java8:新的日期和时间API
Java 8之前老版的java.util.Date类以及其他用于建模日期时间的类有很多不一致及设计上的缺陷,包括易变性以及糟糕的偏移值、默认值和命名。 新版的日期和时间API中,日期时间对象是不可变的。 新的API提供了两种不同的时间表示方式,有效地区分了运行时人和机器的不同需求。 你可以用绝对或者相对的方式操纵日期和时间,操作的结果总是返回一个新的实例,老的日期时间对象不会发生变化。 Tempor原创 2017-04-29 16:22:49 · 585 阅读 · 0 评论
分享