您的位置:知识库 » 编程基础

“编程基础”文章列表

字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个...
作者: 阮一峰   2013-08-28 17:12:15 阅读:149643 标签:算法
一、广泛了解,从科普书籍开始 选择计算机专业的同学,也许是因为原先有一定的基础,也许是因为一时的激情,但更多的人,可能对自己的选择没有深刻的认识,或多或少对计算机专业有一些神秘的感觉。自己究竟是否喜欢这个学科?才华能够在哪个分支领域有所施展?抑或是真的不适合这个专业?诸多疑问,解决的方法首先便...
作者: 林建   2013-08-26 12:08:45 阅读:20338 标签:学编程
1. 什么是内存泄露 看到网上有很多人都在问内存泄露与内存溢出的区别,而且后面还有一大堆的跟帖在用不同形式的语言予以解答,我看了以后思绪万千啊。内存泄露是导致内存溢出的原因之一,说他们的区别纯属无稽之谈。要解释什么是内存泄露还真是个费事的活,我用一个例子来解释下:public class Te...
作者: 夕水溪下   2013-08-23 17:42:52 阅读:9749 标签:Java 内存泄露
今天聊一聊电脑和人脑的并发问题。 在计算机发展初期,CPU的计算能力非常有限,计算资源稀缺而昂贵。最早的时候一个CPU只能同时运行一个任务,这简直让人无法忍受。什么叫做只能运行一个程序呢?这就像大学上自习占座一样,一旦一本书、一张纸、一个包或一个活人占有了那个桌子,其他人就再也没法用了,无论是...
作者: 池建强   2013-08-08 21:35:13 阅读:3625 标签:并发
前言 事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,...
作者: lmh12506   2013-07-08 16:49:20 阅读:21373 标签:服务器模型
计算机主机网关的作用是什么? 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。 但是你不被允许走出大门,你想与外界发生的一...
2013-06-16 15:06:51 阅读:5125 标签:网络
有最好的编程语言吗 作者的观点:程序员在最初学习BASIC、Fortran、 Pascal、C、C++等语言时会感觉一个比一个好,不免有喜新厌旧之举。而如今的Visual Basic、Delphi、Visual C++、Java等语言各有所长,真的难分优劣。能很好地解决问题的编程语言就是好语言...
作者: 博文视点   2013-05-18 11:14:50 阅读:8104 标签:软件开发
1) 历史和起源 正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究。美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们创新地将神经系统中的神经元描述成...
2013-05-15 13:59:22 阅读:5528 标签:正则表达式
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限,一次只能...
作者: 阮一峰   2013-05-07 19:28:28 阅读:9630 标签:进程 线程
在过去的一年中,我一直在数学的海洋中游荡,research进展不多,对于数学世界的阅历算是有了一些长进。 为什么要深入数学的世界 作为计算机的学生,我没有任何企图要成为一个数学家。我学习数学的目的,是要想爬上巨人的肩膀,希望站在更高的高度,能把我自己研究的东西看得更深广一些。说起来,我在刚来...
作者: dahuasky   2013-05-02 22:15:23 阅读:11953 标签:数学
从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示......这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。 零、boot的含义 先问一个问题,"启动"用英语怎么说? 回答是boot。可是,boot原来...
作者: 阮一峰   2013-04-04 22:35:33 阅读:15272 标签:计算机
英文原文:The Command Line is Your Best Friend 命令行既可以成为你的至交好友,又可能成为你最大的敌人。它关键取决于你怎样用它,以及用它来做什么。如果你还是像大部分人一样畏惧使用命令行界面,那么这篇文章定会让你受益匪浅。 命令行界面? 是的,它是在黑色屏幕...
2013-03-28 17:13:35 阅读:9705 标签:命令行 Linux
英文原文:The 10 commandments of good source control management 若是还有可以毫无偏见地涉及各个编程语言,比源代码管理软件更必要的工具,我倒是很想见识一下。源代码管理软件是我们工作的必备工具,是许多开发团队的血液。那为什么我们都会对它有所误解...
作者: Troy Hunt   2013-03-01 12:04:24 阅读:9082 标签:源代码管理
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。 它支持多种协议,下面举例讲解如何将它用于网站开发。 一、查看网页源码 直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它...
作者: 阮一峰   2013-02-16 13:11:02 阅读:6104 标签:curl
SSH有很多非常酷的特性,如何它是你每天的工作伴侣,那么我想你有必要了解以下16条高效使用SSH的秘籍,它们帮你节省的时间肯定会远远大于你用来配置它们的时间。 1. 多条连接共享 如果你需要在多个窗口中打开到同一个服务器的连接,而不想每次都输入用户名,密码,或是等待连接建立,那么你可以配置S...
2013-02-06 16:14:50 阅读:7401 标签:SSH
引言 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞...
2013-01-30 14:19:50 阅读:8891 标签:Hadoop 文件系统
英文原文:The Cost of an Exception 最近在dynaTrace上出现了一场关于异常(Exception)的代价的大讨论。在跟一些客户的接触中,我们经常的发现他们的代码里有大量的异常处理,自己都不知道。在移除了这些异常后,程序的运行速度比以前有大幅度的提高。这让我们产生了一...
2013-01-30 10:32:55 阅读:3387 标签:Java 异常
英文原文:Some notes about time 注:英文原文由 @程序员的那些事 在微博推荐,感谢 @泉州一中-刘家昌编译完成初稿。在译文基础上,伯乐在线根据维基百科等资料有补充和改动。也感谢 @周金宇Jered的翻译。(如需转载,请保留本段说明。) 一些关于时间的注解: ● UTC...
作者: Emil Mikulic   2013-01-27 15:05:54 阅读:5917
原文发表于 2006 年 11 月 15 日 微软著名的 C++大师 Herb Sutter 在 2005 年初的时候曾经写过一篇重量级的文章——The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software,...
作者: 孟岩   2013-01-25 17:15:00 阅读:1815 标签:MapReduce
英文原文链接:Why Functional Matters: Your white board will never be the same 为什么我们要学习函数式编程?为获得更好的软件设计技术! 一天,我们设计了一个流程,来校对款项的收支平衡。下面这张图就是我们在几年前设计出的结果: 那...
2013-01-17 11:54:18 阅读:4023 标签:函数式编程