2017年3月15日
摘要: 本文介绍Stream规约操作,这是比较有魔法的地方。规约操作(reduction operation)又被称作折叠操作(fold),是通过某个连接动作将所有元素汇总成一个汇总结果的过程。元素求和、求最大值或最小值、求出元素总个数、将所有元素转换成一个列表或集合,都属于规约操作。Stream类库有两个通用的规约操作reduce()和collect(),也有一些为简化书写而设计的专用规约操作,比如sum()、max()、min()、count()等。 阅读全文
posted @ 2017-03-15 08:12 CarpenterLee 阅读(79982) 评论(4) 推荐(21) 编辑
  2017年3月14日
摘要: "本文github地址" .md) 你可能没意识到Java对函数式编程的重视程度,看看Java 8加入函数式编程扩充多少功能就清楚了。Java 8之所以费这么大功夫引入函数式编程,原因有二: 1. 代码简洁 ,函数式编程写出的代码简洁且意图明确,使用 stream 接口让你从此告别 for 循环。 阅读全文
posted @ 2017-03-14 07:57 CarpenterLee 阅读(40808) 评论(4) 推荐(15) 编辑
  2017年3月6日
摘要: Java8为容器新增一些有用的方法,这些方法有些是为完善原有功能,有些是为引入函数式编程(Lambda表达式),学习和使用这些方法有助于我们写出更加简洁有效的代码.本文分别以ArrayList和HashMap为例,讲解Java8集合框架(Java Collections Framework)中新加入方法的使用. 阅读全文
posted @ 2017-03-06 07:03 CarpenterLee 阅读(20111) 评论(6) 推荐(6) 编辑
  2016年10月25日
摘要: C语言程序从源代码到二进制行程序都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程。 阅读全文
posted @ 2016-10-25 07:03 CarpenterLee 阅读(73133) 评论(4) 推荐(13) 编辑
  2016年10月19日
摘要: Java Labmda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的。本篇我们首先感受一下使用Lambda表达式带来的便利之处。 阅读全文
posted @ 2016-10-19 21:04 CarpenterLee 阅读(40434) 评论(3) 推荐(3) 编辑
  2016年10月9日
摘要: Java 8已经发行两年多,但很多人仍然在使用JDK7。对企业来说,技术上谨慎未必是坏事,但对个人学习而言,不去学习新技术就很可能被技术抛弃。Java 8一个重要的变更是引入Lambda表达式(lambda expression)。不要怕,具体到语言层面上Lambda表达式不过是一种新的语法而已,有了它,Java将开启函数式编程的大门。 阅读全文
posted @ 2016-10-09 10:09 CarpenterLee 阅读(8179) 评论(21) 推荐(16) 编辑
  2016年5月31日
摘要: Introduction 关于 C++标准模板库(Standard Template Library, STL) 的书籍和资料有很多,关于 Java集合框架(Java Collections Framework, JCF) 的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小 阅读全文
posted @ 2016-05-31 15:23 CarpenterLee 阅读(24550) 评论(11) 推荐(16) 编辑
摘要: Java WeakHashMap 到底Weak在哪里,它真的很弱吗? WeakHashMap 的适用场景是什么,使用时需要注意些什么?弱引用和强引用对Java GC有什么不同影响?本文将给出清晰而简洁的介绍。 总体介绍 在Java集合框架系列文章的最后,笔者打算介绍一个特殊的成员: WeakHash 阅读全文
posted @ 2016-05-31 06:57 CarpenterLee 阅读(3288) 评论(0) 推荐(2) 编辑
  2016年5月30日
摘要: Java LinkedHashMap 和 HashMap 有什么区别和联系?为什么 LinkedHashMap 会有着更快的迭代速度? LinkedHashSet 跟 LinkedHashMap 有着怎样的内在联系?本文从数据结构和算法层面,结合生动图解为读者一一解答。 "本文github地址" 总 阅读全文
posted @ 2016-05-30 08:36 CarpenterLee 阅读(9648) 评论(6) 推荐(11) 编辑
  2016年5月25日
摘要: "本文github地址" 上一篇文章 "史上最清晰的红黑树讲解(上)" 对Java TreeMap 的插入以及插入之后的调整过程给出了详述。 本文接着以Java TreeMap 为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程 。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以 阅读全文
posted @ 2016-05-25 07:36 CarpenterLee 阅读(24587) 评论(15) 推荐(14) 编辑