自1998年JDK 1.0(Java 1.0)发布以来,Java已经受到了学生、项目经理和程序员等一大批活跃用户的欢迎。这一语言极富活力,不断被用在大大小小的项目里。从Java 1.1(1997年) 一直到Java 7(2011年),Java通过增加新功能,不断得到良好的升级。Java 8则是在2014年3月发布的。
1.Java 8的核心新特性:Lambda(匿名函数)、流、默认方法
2.改进的压力:函数式比命令式更适应新的体系架构
3.Java 8对硬件也有影响:平常我们用的CPU都是多核的,你的笔记本电脑或台式机上的处理器可能有四个CPU内核,甚至更多。但是,绝大多数现有的Java程序都只使用其中一个内核,其他三个都闲着,或只是用一小部分的处理能力来运行操作系统或杀毒程序。Java 8可以透明地把输入的不相关部分拿到几个CPU内核上去分别执行你的
Stream操作流水,这是几乎免费的并行,用不着去费劲搞Thread了。
- 如下,举个栗子…
- 给定两个数字列表,如何返回所有的数对呢?例如,给定列表[1, 2, 3]和列表[3, 4],应
该返回[(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]。为简单起见,你可以用有两个元素的数组来代表数对。只返回总和能被3整除的数对呢?例如(2, 4)和(3, 3)是可以的。 - java8答案:
List numbers1 = Arrays.asList(1, 2, 3);
List numbers2 = Arrays.asList(3, 4);
List<int[]> pairs =
numbers1.stream()
.flatMap(i -> numbers2.stream()
.filter(j -> (i + j) % 3 == 0)
.map(j -> new int[]{i, j}) )
.collect(toList());
其结果是[(2, 4), (3, 3)]。
对此有什么看法或疑问呢!