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

Read More

一:人们面临交替关系

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

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

Read More

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

Read More

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

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

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

自20日确立此行,21号下班便走,自深圳南山而始,一路众生大侃戏调,颇是馨悦。颠簸近七八小时,是夜两点余达取道之江西赣州信丰,我等入一馆而歇,人疲力竭,未管舒宜,速浴而寝。

入梦四时后即起,寡梳少洗,觅寻早餐,一阵折腾行驶时余,九点半方至广东韶关坪田: 因慕银杏之乡而来,俱以为能观银杏成林,杏果满枝,金黄漫野,曼妙无限。但见:一路尚在开发修缮,车过而生尘烟;边房兮待紧建。苦民多拾野物(不过瘦红薯老拐枣,松果花杏黄叶,另有干鸭杏仁及些许黄果,未曾识得,亦未食也)于道旁而售,其中不乏老人幼子。自朝而夕,行经坪田的坳背村,军营寨,冯屋。众人不过遇杏而拍罢了,一路来尽此为快。然,行之所至,未有杏群,更别杏林,不过皆是几株一簇,抑或平地起一支以独秀,美则美矣,秀清有余,然寡而独舞!偶也可遇几株清竹香樟,更杂万千翠木刺草于野,也算远尘嚣而静安。然,人流似洪,余也是毕今日之力,皆在思拍靓景。

午团餐,尚可食。下午行路,小车兼之,然游人如织,使步行亦有七八余里,期间亦是不曾安分,大秀凌波跳往。至冯屋,正值金屋西下,兼此处有两株六百年老银杏,颇有 “落叶与暖霞齐飞,秋杏共大地一色” 之势,质朴乡野,如身着黄衣女子般曼妙;落日与相机将馨林照耀,风乍起,但只美见而已;众人也是欣喜不已,拥树而显术,肆意闪光,唯人流铁通,难得佳境,如此盘桓至暮,小三轮大胖吧颠簸而归;于中国自是一番久堵,夜九点半又杀至赣州信封,觅而食,冲以澡,已是夜深,疲意褪去,唯脚掌大痛;当早寝明复往南雄至帽子峰,愿能不虚其行。

—2014-12-22日暮晚 于广州.南雄 至 江西信封路途—

如何创建一个线程

按 Java 语言规范中的说法,创建线程只有一种方式,就是创建一个 Thread 对象。而从 HotSpot 虚拟机的角度看,创建一个虚拟机线程
有两种方式,一种是创建 Thread 对象,另一种是创建 一个本地线程,加入到虚拟机线程中。

Read More