自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云聪的技术错题集

基础的扎实程度直接决定高度

  • 博客(13)
  • 问答 (4)
  • 收藏
  • 关注

原创 Heritrix3.3.0源码阅读 让爬虫停不下来

在文章Heritrix3.3.0源码阅读 动态加载种子中说过,Heritrix3.3.0有一个很实用的功能,就是在抓取开始之后,依然可以通过在指定目录里放入种子文件的方式向爬虫添加新的种子,这是通过定时扫描这个指定放种子文件的目录加载种子文件然后发布种子来实现的。可是,默认情况下,当发现frontier为空后,爬虫就会停止,不再扫描那个目录。

2015-12-31 13:29:19 1269

原创 百万员工信息随机生成和工资求和问题

请使用Java 8的Lambda表达式和多线程处理模式来解决如下问题:有一家小型企业内部的数据库使用mongoDB来存储员工个人数据,其中员工列表数据格式如下:

2015-12-27 21:49:06 954

原创 精确提取新闻内容

以前在《数学之美》的“余弦定理和新闻的分类”一文中看到,2002年夏天,Google推出了自己的新闻服务,而这些内容来源于对其它新闻网站内容的抓取、整理和分类,而构建这个新闻网站的关键技术是新闻的自动分类。我相信了作者,认真学习了书中介绍的新闻自动分类技术:利用余弦定理计算新闻相似度的层次聚类和利用奇异值分解的聚类。之后,我就觉得自己掌握了自动构建新闻网站的绝技。然而,直到最近,我才如梦初醒,

2015-12-26 14:53:21 4116

原创 SQL语句 SELECT后面的表别名-点-星号(alias.*)

有表eetymology: 然后,有这样一个查询语句:SELECT word, e.* FROM eetymology e不知道看到这个语句的你有何感想,反正今天我看到一个类似的语句时是懵懵的。

2015-12-22 21:49:14 8388

翻译 深入理解计算机系统 第二章 表示和操作信息

现代系统存储和处理信息,这些信息是通过二进制表示的。二进制,或者成为位(bit),形成了数字革命的基础。十进制(以10为基底)已经使用了超过一千年,它形成于印度, 在十二世纪被阿拉伯数学家改进,十三世纪被意大利数学家斐波那契带到西方。对于有十个手指头的人来说,使用十进制是很自然的,但是对于存储和处理信息的机器来说,二进制是更合适的。

2015-12-21 21:36:24 1049

翻译 深入理解计算机系统 1.9 重要主题

这一节结束我们旋风般的系统之旅。一个重要的观点是,一个系统不仅仅是硬件。它是硬件和系统软件的集合,它们必须合作才能实现运行应用软件的目的。这本书剩余部分会讨论更多关于软件和硬件的细节,并展示如何通过理解这些概念让你写出更快、更可靠、更安全的程序。为了结束这章,我们强调几个重要概念,这些概念横跨计算机系统的各个方面。我们将在这本书的很多地方讨论这些概念的重要性。

2015-12-19 00:18:23 857

翻译 深入理解计算机系统 1.8 系统通过网络与其它系统交流

在此之前,我们一直把计算机系统视为一个独立的硬件和软件集合。实际上,现代系统总是通过网络与其它系统相连的。从单独系统的角度看,网络只是另一个I/O设备罢了,就如Figure 1.14所示。当系统从内存复制字节序列到网络适配器时,数据通过网络流向另一个机器,而不是流向本地磁盘。相似的,系统能读取从其它机器发送来的数据并把数据拷贝到它的内存里。随着全球网络(比如互联网)的出现,从一个系统向另一

2015-12-14 22:07:25 675

原创 Java虚拟机 堆和栈

“堆栈”这个词总是让我迷惑,因为除了这个词,我还经常看到单独的“堆”和“栈”,今天就来梳理一下。首先,讲讲我们的主题,Java虚拟机里的堆和栈。它俩都是虚拟机运行时数据区里的一个块区域。堆用于存储对象,是线程共享的,当虚拟机启动时就被创建了。而栈用于存储栈帧,是线程私有的,随着线程的启动而建立,结束和销毁。

2015-12-10 21:41:25 1415 2

翻译 深入理解计算机系统 1.7 操作系统管理硬件

回到我们的hello程序。当shell加载并运行hello程序时,当hello程序打印出它的消息时,程序并没有直接访问键盘、显示器、硬盘和内存,而是依赖于操作系统提供的服务。我们可以把操作系统想成放置在应用程序和硬件之间的一个软件层,就像Figure1.10展示的那样。所有应用程序对硬件的操作都必须经过操作系统才能完成。

2015-12-09 22:54:33 1335

翻译 深入理解计算机系统 1.6 存储设备形成层次结构

在处理器和一个更大更慢的存储设备(比如内存)之间插入一个更小更快的存储设备的观点是比较常见。实际上,每一个计算机系统中的存储设备都被组织为像Figure1.9所示的存储层次结构。当我们从层次结构的顶端看下来,存储设备变得更慢,更大,也更便宜了。寄存器占据着层次结构的顶端,被称为level0,或者L0。我们展示了三个层次的缓存,从L1到L3,它们占据着层次中的1到3级。内存占据着层次结构中的第四层,

2015-12-08 22:56:21 652

原创 Java虚拟机 程序计数器

通常的程序计数器(PC)是计算机CPU中的一个重要部件,它存储着CPU要执行的命令的地址。在计算机从通电到断电这期间,CPU做的事儿也就是不断执行程序计数器指向的指令和更新程序计数器的值使之指向下一条要执行的指令。Java虚拟机中的程序计数器是Java运行时数据区中的一小块内存区域,但是它的功能和通常的程序计数器是类似的,它指向虚拟机正在执行字节码指令的地址。具体点儿说,当虚拟机执行的方法不是

2015-12-07 22:16:59 3557

原创 Java运行时数据区

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。其中有一些区域会随着虚拟机的启动而创建,随着虚拟机的退出而销毁;另一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程的开始而创建,结束而销毁。

2015-12-07 21:48:35 743

原创 从字符串编辑距离到字符串对齐

(一)字符串编辑距离字符串编辑距离,也称莱文斯坦距离,它是指把一个字符串变为另一个字符串需要的最小操作步数,每一步可以在“一个字符串”上做以下三种操作之一:(1)插入一个字符;(2)删除一个字符;(3)修改一个字符。计算编辑距离的常见方法是动态规划,思路是这样的:(1)首先找到动态规划里的状态。我们可以计算word1(第一个字符串)的前i个字符组成得子字符串到word2

2015-12-06 22:15:10 3322

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除