初学Clojure—定义函数

严格来说,Lisp是一种多范式语言,不仅仅是函数式编程,也可面向对象,也可面向过程,但它的特性确实在函数式编程中更为出色些。Clojure作为Lisp家族中的一员,继承祖先的优良传统,也有自己的特色,特别在“函数是第一公民”的原则上。比如匿名函数的递归,在Common Lisp只能自定义宏实现,在Scheme优雅不少,但也好看不到哪去。

阅读更多

初学Clojure—基本语法

为了全面学习函数式编程语言,之前尝试了scala,不得不承认它的入门门槛略高。于是乎,决定从古老的新语言Clorue入手,作为Lisp的一种方言,语法上无疑是古老的,但它又运行在JVM上且有一些不错的机制,无疑是门新语言。

阅读更多

LinkedIn的Parseq + ning.httpclient异步请求框架的使用

Parseq是Linkedin的一个异步框架,目前来说是个封装的较好而且易用的异步框架。除了普通的数据处理外,还支持网络请求、消息队列等。

阅读更多

浅谈Java集合框架-来看看LinkedHashMap是啥!

跳槽后,就没怎么看jdk,趁着十一看回点集合框架。我们知道HashMap是无序的,jdk也给我们提供了算是有序的HashMap,即LinkedHashMap。然而它只保留了操作的相对有序,而非TreeMap的Key自然有序。

阅读更多

Linux-awk编程

awk是个刁到不行的文本处理命令,查看生产环境日志时,简直就是神操!
新增:awk的数组

阅读更多

浅谈Java集合框架-比较HashMap与Hashtable

Hashtable实际上就是一个线程安全的HashMap,不过它是个遗留下来的过气类,其性能也并比不少ConcurrentHashMap。

阅读更多

浅谈Java集合框架-瞧瞧LinkedArray源码,查询效率为何如此低下?

平时用惯ArrayList插入查询,无视性能而忽略了LinkedArray,今日也反省反省,研究了一下
LinkedArray和ArrayList源码。其实理解两者原理和区别并不难,都是简单数据结构的应用。

阅读更多

浅谈Java集合框架-看看HashMap源码,了解它是咋运作的?

初探HashMap源码,显然要理解它的运作并不难,只要基本掌握哈希桶这种数据结构。本文只在源码上对get(K key)put(K key, V value)进行解读,并了解HashMap的原理。我看的是jdk1.7的源码!

阅读更多

设计模式-状态模式

现实生活中,操作某一固定事物,可能会触发不同状态,例如电灯的开关。代码中也用相类似的情况,调用某对象的同一方法或多个方法,会触发对象内部的某个状态,而这个状态会影响你下一步可能调用的方法。我们这一次就讲讲状态模式。

阅读更多

设计模式-策略模式

前面聊过模版方法,在一个算法中某步骤有多套实现时,可以很有效替换算法步骤。那如果在一套代码中有多种策略呢?更换策略是否还要更改原有的代码?这次说说策略模式。

阅读更多