本文是「Java 8 函数式编程」第三章的读书笔记,章名为流。本章主要介绍了外部迭代与内部迭代以及常用的高阶函数。
外部迭代与内部迭代
外部迭代
过去我们要对一个List进行迭代时,往往会采用如下方式:
java
int count = 0;
for (Artist artist : artists) {
if (artist.isFrom("London")) {
count++;
}
}
继续阅读 »
本文是「Java 8 函数式编程」第二章的读书笔记。
Lambda引入的变化
Lambda表达式,是一种紧凑的、传递行为的方式,从编程思想上来讲,就是代码即数据。
过去的Java中,存在大量的匿名内部类的使用,会新建一个匿名内部类传入调用的方法中。这种传统的方式,会造成冗余的、不易阅读的代码。
继续阅读 »
本章是该书的第五章, 主要讲了方法引用和收集器
方法引用
形如:
java
artist -> artist.getName()
(String arg) -> arg.length()
这样的表达式, 可以简写为:
继续阅读 »
在升级JDK至1.8之后,使用Maven-javadoc-plugin插件打包报错,*[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar (attach-javadocs) on project
*详细信息如下
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar (attach-javadocs) on project StatisticsReport: MavenReportExcep
继续阅读 »
本书第四章的读书笔记, 本章主要阐述: 如何使用Lambda表达式.
基本类型
考虑到装箱类型过于占用内存, JDK提供了针对基本类型的操作, 以达到优化的效果, 如mapToLong方法.
对基本类型做特殊处理的方法在命名上有明确规范:
继续阅读 »
本书第六章的读书笔记,也是我这个系列的最后一篇读书笔记。后面7、8、9章分别讲的“测试、调试与重构”、“设计和架构的原则”以及“使用Lambda表达式编写并发程序”,因为笔记不好整理,就不写了,感兴趣的同学自己买书来看吧。
并行化流操作
继续阅读 »
在这篇文章中我将向你演示如何使用Java8中的foreach操作List和Map
1. Foreach操作Map
1.1 正常方式遍历Map
```java
Map items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60);
for (Map.Entry entry : items.entrySet()) {
System.out.println("Item : " + entry.getK
继续阅读 »
JDK:java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
OS:win7 64bit
cmake:V2.8.12/V3.2.2
LTP:V3.2.0
LTP4J:V1.0
Microsoft VS C++:V2010
编译LTP4J.jar
下载Ant
ltp4j的源码使用ant进行编译,首先需要下载ant,点我下载
配置Ant环境变量
我的电脑-->属性-->高级系统设置-->环境变量
新建A
继续阅读 »
JDK:java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
OS:win7 64bit
在日常开发中,经常需要在项目中加载各种资源,包括图片、文本、声音等资源,在本地项目中运行代码可以正确地加载资源,但是当把本地项目打包成Jar包并发布到web项目中之后,即便将各种资源文件一并打包,依然会出现无法正确加载资源的问题。这说明,在你希望打包的项目中加载资源的方式是错误的。那么你或许会问,为什么在单独的项目中
继续阅读 »
从最初 OkBuck 发布时宣称 BUCK 与 RetroLambda 不兼容只能忍痛割爱(lambda),到 BUCK 维护者之一联系我声称 BUCK 可以编译 Java 8 结果遇到编译错误未解,到昨晚终于成功让 BUCK 与 RetroLambda 出双入对,时隔大半年终于臻至完美,怎一个爽字了得!如果你还不了解什么是 BUCK,可以参考我的两篇文章 OkBuck, underneath the hood{:target="_blank"},手把手OkBuck教程:应用到AndroidTDDBootStrap项目(续){:target="_blank"},以及 BUCK 官方文档{:target="_blank"}。
继续阅读 »