
周sir
白天是名讲师,晚上是名有抱负的程序员也叫攻城师。这是我的博客。致力于分享我学会的技术和优秀的文章。微信公众号 “周sir专栏” 欢迎大家关注。
我是一个特别迷信数字六的人,比如我是2016年写的这篇文章,刚好总结了我前六年的程序生涯,我又选择了今年的六月六号下午六点来发送这篇文章。生我的那年(1987年)阴历恰好有两个六月,我生于前六月,时隔30年的今年也恰好阴历有两个六月,今年30岁也刚好是五个六年。其实我还可以讲出更多关于6的故事,不过…
写下的不仅仅是代码,还有文章。 假如你是开源社区的一员,你能够通过代码帮助我们提高编程水平。写作也是一样:不但可以提升自己的知名度,还能让好的想法传播得更广。 更重要的,写作本身就是思考。没有比写作更好的方法来理解技术了。 为什么写博客 无论你专业宽窄与否,只要你比其他人更懂得如何分析纽约地铁时刻表…
[java]引子 将行为作为数据传递 Java8函数框架解读 函数接口 聚合器 Reduce 四要素 列表类聚合器 映射类聚合器 自定义聚合器 流 Stream的接口 collector实现 Pipeline 函数式编程的益处 更精练的代码 更通用的代码 更可测的代码 组合的力量 Java8泛型 完…
一. Future JDK 5引入了Future模式。Future接口是Java多线程Future模式的实现,在java.util.concurrent包中,可以来进行异步计算。 Future模式是多线程设计常用的一种设计模式。Future模式可以理解成:我有一个任务,提交给了Future,Futu…
当你开始使用Java操作日期和时间的时候,会有一些棘手。你也许会通过System.currentTimeMillis() 来返回1970年1月1日到今天的毫秒数。或者使用Date类来操作日期;当遇到加减月份、天数的时候 你又需要用到Calendar类;当需要格式化日期的时候需要使用java.text…
身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。一些JVM编程语言比如Scala、Ceylon等…
了解Stream Java8中有两个最为重要的改变,一个是Lambda表达式,另一个就是Stream API,针对常见的集合数据处理,Stream API 提供了一种高效且易于使用的数据处理方式。 什么是Stream 基本概念 流(Stream)用于操作数据源所生成的元素序列。Java 8给…
下图是对Java8中新特性的整理(来自网络),总的来看,大致上可以分成这么几个大块。 一、函数式接口 函数式接口其实本质上还是一个接口,但是它是一种特殊的接口:SAM类型的接口(Single Abstract Method)。定义了这种类型的接口,使得以其为参数的方法,可以在调用时,使…
标签:jdk8新特性1前言Java帝国在诞生之初就提供了集合、线程、IO、网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略了一个重要的功能: 输出日志。 对于这一点,IO大臣其实非常清楚, 日志是个很重要的东西, 因为程序运行起来以后, 基本上就是一个黑盒子,如果程序的行为和预料的不一…
在上篇AOP 那点事儿中,我们从写死代码,到使用代理;从编程式 Spring AOP 到声明式 Spring AOP。一切都朝着简单实用主义的方向在发展。沿着 Spring AOP 的方向,Rod Johnson(老罗)花了不少心思,都是为了让我们使用 Spring 框架时不会感受到麻烦,但事实却并…