MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行。下面通过熟悉MongoDB的基本管理命令,来了解MongoDB提供的DBMS的基本功能和行为。 More …
mongodb由C++写就,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。关于它的一个最简洁描述为:scalable, high-performance, open source, schema-free, document-oriented database。MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。 More …
Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的!
在开发Web方面的应用时, 经常需要获取服务器中当前WebRoot的物理路径。 More …
北京的由来
历朝历代都将北京视为重镇加以治理和保护,并不断改变着它的名称。有人统计过,北京城的各种名称达六十多个。就大家熟悉和史书中常见的说,北京地区上古时称幽陵,夏朝时称冀州,周朝时称蓟,春秋战国时是燕国的都城,故称燕京。秦置广阳、渔阳,西汉设幽州,东汉为广阳、蓟县,北魏称燕都,隋改涿郡,京杭大运河的北端就从这里开始。唐改称范阳,安史之乱时,安禄山就是从范阳起兵的。唐以后又一度称幽州。辽建都在上京,把这里作为陪都称幽都,也称南京,因此地在上京之南。金朝建都于此,称中都,并对其进行了扩建。这是北京八百余年建都史的开始。元朝时称大都,这时的北京城已是一个相当繁华的大都市了。马可?波罗在他的游记中曾对大都做过详细描述。北京作为全国的政治中心也由此开始。明朝建立后,朱元璋将首都定在南京。后朱棣从他侄儿手中夺得政权后,将首都迁到这里,故称北京。明朝时,还一度称北京为京师。清朝也建都北京,并沿用了明朝的名称。民国建立之后仍称北京。1928年改称北平。北平这一名称是国民党四大家族之一的陈立夫提议改用的。北伐战争后,陈立夫曾在南京办了一份《京报》。这份民间报纸很敢说话,销路很好,其销出的份数比《中央日报》还多。有一天,陈立夫忽然想到首都既决定在南京,北京这一名称应更改,以免残余军阀再图在那里起野心设政府。于是,他让《京报》罗时实执笔,写下了《正名之重要》一文。国民政府采纳了陈立夫的建议。其实,历史上北京的北平之称早已有之。那是1368年,朱元璋手下大将徐达攻占元朝大都之后,即对大都城进行改建。第二年,朱元璋下令将元大都改称北平府,有平定了北方,从此安宁平静之意。到1403年,朱棣定都北平时,才改名北京。1949年,新中国成立,又将北平改为北京。 More …
算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。 More …
程序员面试一直是社区乐于讨论的热门话题。我自己从06年实习以来,先后经历了4家软件公司,全部是外企,其中有世界500强的通信企业,有从事期权期货交易的欧洲中等规模的金融公司,也有为大型汽车制造商开发Android智能汽车的新兴公司。跨入IT行业以来,我在求职过程中经历过多次面试,最近两年也有过多次面试别人的经验。我感觉现在到了对这个问题发表自己看法的时候,这篇文章是我站在面试官角度对于程序员面试问题的一个阶段性反思和经验总结。 More …
一月份=JAN. Jan.=January
二月份=FEB. Feb.=February
三月份=MAR. Mar.=March
四月份=APR. Apr.=April
五月份=MAY May=May
六月份=JUN. Jun.=June
七月份=JUL. Jul.=July
八月份=AUG. Aug.=August
九月份=SEP. Sept.=September
十月份=OCT. Oct.=October
十一月份=NOV. Nov.=November
十二月份=DEC. Dec.=December
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 More …
ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分,它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。而且,对于大多数成功的 get() 操作它会设法避免完全锁定,其结果就是使得并发应用程序有着非常好的吞吐量。这个月,Brian Goetz 仔细分析了 ConcurrentHashMap 的代码,并探讨 Doug Lea 是如何在不损失线程安全的情况下取得这么骄人成绩的。请在 讨论论坛 上与作者及其他读者共享您对本文的一些想法(也可以在文章的顶部或底部点击讨论来访问论坛)。
在7月份的那期 Java理论与实践(“Concurrent collections classes”)中,我们简单地回顾了可伸缩性的瓶颈,并讨论了怎么用共享数据结构的方法获得更高的并发性和吞吐量。有时候学习的最好方法是分析专家的成果,所以这个月我们将分析 Doug Lea 的util.concurrent 包中的 ConcurrentHashMap 的实现。JSR 133 将指定 ConcurrentHashMap 的一个版本,该版本针对 Java 内存模型(JMM)作了优化,它将包含在 JDK 1.5 的 java.util.concurrent 包中。util.concurrent 中的版本在老的和新的内存模型中都已通过线程安全审核。 More …