HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入让这道题变得更加复杂。让我们开始探索的旅程吧!

Read More

一:人们面临交替关系

“天下没有白吃的午餐。”为了得到一件东西,通常不得不放弃另一件东西。作出决策要求我们在一个目标与另一个目标之间有所取舍。

学生面临如何分配学习时间的交替,父母在购物,旅游和储蓄间面临交替,社会面临效率与平等的交替。

Read More

      昨夜,小读王小波的《黄金时代》,在其玩味的言语之间停不下来,只是未曾购得,只是才看了样章而已。今特查了他得生平和文集,也算很是青睐。知晓此人倒也很久,前段时间更也知道他对于计算机这块也是颇有研究,也算中国第一代程序员了;于现在的我而言,很是钦赞!

Read More

Lua实现闭包

1
2
3
4
5
6
7
8
9
10
11
12
--[[@Func :实现闭包
@Desc : 当一个函数内部嵌套另一个函数定义时,内部的函数体可以访问外部的函数的局部变量,这种特征我们称作词法定界]]
function fuck()
local i = 0
return function()
i = i + 1
return i
end
end
c1 = fuck()
print(c1())
print(c1())

Read More

Lua采用了基于垃圾收集的内存管理机制,因此对于程序员来说,在很多时候内存问题都将不再困扰他们。然而任何垃圾收集器都不是万能的,在有些特殊情况下,垃圾收集器是无法准确的判断是否应该将当前对象清理。这样就极有可能导致很多垃圾对象无法被释放。为了解决这一问题,就需要Lua的开发者予以一定程度上的配合。比如,当某个table对象被存放在容器中,而容器的外部不再有任何变量引用该对象,对于这样的对象,Lua的垃圾收集器是不会清理的,因为容器对象仍然引用着他。如果此时针对该容器的应用仅限于查找,而不是遍历的话,那么该对象将永远不会被用到。事实上,对于这样的对象我们是希望Lua的垃圾收集器可以将其清理掉的。见如下代码:

Read More

Git配置

1
2
3
4
5
6
7
8
9
10
git config --global user.name "robbin"
git config --global user.email "fankai@gmail.com"
git config --global color.ui true
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "mate -w" # 设置Editor使用textmate
git config -l # 列举所有配置
用户的git配置文件~/.gitconfig

Read More

The Article Come From StrayBirds;

这篇文章原来出自minixalpha;遥想当年也是参考这篇动态图文使用Hexo折腾自己新的Blog的。一路走过来,不断的折腾,后来有转投于Hexo;也简忆搭建过程:留有使用Hexo搭建专属Blog拙文,希望爱好此道的人也能受益。今看到之前的这篇文章,特此作以说明。更新于@2015-11-10暮于深圳。

基于 GitHub Pages 搭建的极简博客,所有操作都可以直接通过浏览器完成。

Read More