web服务器与应用服务器的对比
摘要:来源:http://www.cnblogs.com/itech/archive/2009/08/18/1548860.html一 常见的WEB服务器和应用服务器 在UNIX和LINUX平台下使用最广泛的免费web服务器是W3C、NCSA和APACHE服务器,而Windows平台NT/2000/2003使用IIS的WEB服务器。 在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器。 常见的web服务器: (其实IIS和Apache同时也支持基础的应用服务器的功能) Microsoft IIS...
阅读全文
posted @
2013-04-28 15:31
猿人谷
阅读(222)
推荐(0) 编辑
C++强大的背后
摘要:来源:http://www.cnblogs.com/miloyip/archive/2010/09/17/1828449.html在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup, 该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过程式、面向对象(object-oriented programming, OP)、泛型(generic programming, GP),后来为泛型而设计的模版,被发现及证明是图灵完备的,因此使C++亦可
阅读全文
posted @
2013-04-28 15:24
猿人谷
阅读(246)
推荐(0) 编辑
汉诺塔
摘要:1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 void Hanoi(int n,char A,char B,char C); 7 8 void main() 9 {10 Hanoi(5,'A','B','C');11 }12 13 void Hanoi(int n,char A,char B,char C)14 {15 if(n==1)16 cout<<"Move top disk from peg "
阅读全文
posted @
2013-04-28 15:19
猿人谷
阅读(178)
推荐(0) 编辑
apue.h头文件
摘要:最近在学习UNIX的编程,用的书是《UNIX环境高级编程》,看到书中有很有实例,我用的操作系统是RadHat,照着书把程序清单输入后编译却通不过,显示的错误是没有“apue.h头文件”。这下对我这只菜鸟来说就是当头一棒,这不坑爹吗?就照着书把程序再抄了一遍,发现出现同样的问题,这下引起我的思考。原来apue.h是作者自己写的一个文件,包含了常用的头文件,系统不自带。其中包含了常用的头文件,以及出错处理函数的定义。需要自己去配置这样的头文件,特将解决的方法总结如下: 在http://www.apuebook.com/下载src.tar.gz源代码的压缩包。 1、解压至/home/user/目录.
阅读全文
posted @
2013-04-27 14:53
猿人谷
阅读(1074)
推荐(0) 编辑
memcpy和memmove的区别
摘要:memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count);它们都是从src所指向的内存中复制count个字节到dst所指内存中,并返回dst的值。当源内存区域和目标内存区域无交叉时,两者的结果是一样的,但如果有交叉呢?先看下图:图的上半部分为源内存区域在目标内存区域右边,下半部分为源内存区域在目标区域左边,源内存区域和目标内存区域都
阅读全文
posted @
2013-04-26 20:52
猿人谷
阅读(679)
推荐(0) 编辑
(转)微软面试题
摘要:来源:http://www.cnblogs.com/qlee/archive/2011/09/16/2178873.html1、有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。View Code 1 using System; 2 using System.Linq; 3 using System.Collections.Generic; 4 namespace ConsoleApplication1 5 { 6 class Program 7 { 8 static Random Rand =new Random(); ...
阅读全文
posted @
2013-04-26 20:21
猿人谷
阅读(244)
推荐(0) 编辑
代码段、数据段、堆栈段、数据段
摘要:1、高位地址:栈(存放着局部变量和函数参数等数据),向下生长 (可读可写可执行)2、 堆(给动态分配内存是使用),向上生长 (可读可写可执行)3、 数据段(保存全局数据和静态数据) (可读可写不可执行)4、地位地址:代码段(保存代码) (可读可执行不可写)代码段就是存储程序文本的,所以有时候也叫做文本段,指令指针中的指令就是从这里取得。这个段一般是可以被共享的,比如你在Linux开了2个Vi来编辑文本,那么一般来说这两个Vi是共享一个代码段的,但是数据段不同(这点有点类似C++中类的不同对象共享相同成员函数)。 数据段是存储数据用的,还可以分成初始化为非零的数据区,BSS,和堆(Heap)三个
阅读全文
posted @
2013-04-26 20:16
猿人谷
阅读(902)
推荐(0) 编辑
重载、覆盖、隐藏
摘要:成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。示例8-2-1 中,函数Base::f(int)与Base::f(float)相互重载,而Base::g(void)被Derived::g(void)覆
阅读全文
posted @
2013-04-26 20:07
猿人谷
阅读(290)
推荐(0) 编辑
Java初学者需掌握的30个概念
摘要:基本概念: 1.OOP中唯一关心的是对象的接口是什么,就像计算机的销售商她不管电源内部结构 是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why。所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大 限度上提高复用率。2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。 3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance fie
阅读全文
posted @
2013-04-26 17:24
猿人谷
阅读(211)
推荐(0) 编辑
有趣的Linux命令行效果
摘要:有趣的Linux命令行功效1. Linux"sl"命令行尽管"sl"代表了"蒸汽机机头",但它是用来提醒那些命令行控们别把"ls"打成了"sl"。让我们看看在系统中运行这个命令的时候会怎样。首先,我们安装的时候,要将其设置为不与标准Linux一起出现。用"apt-get"可以很方便地完成安装。sudo apt-get install sl大部分的安装需要sudo特权。完成安装后,在命令提示行中输入"sl"。$sl我们看到了动画蒸汽机机头从屏幕右边开往左边。
阅读全文
posted @
2013-04-25 16:44
猿人谷
阅读(1010)
推荐(0) 编辑
据说是月薪2W的笔试题
摘要:话说,有这样一道据说是月薪2W的笔试题:#include "stdio.h"void print(){*}void main(){}要求在*部分写代码使整个程序运行后输出“hello world”,有些人说,这还不简单啊,于是写出这样的代码:view sourceprint?01.#include "stdio.h" 02.void print() 03.{ 04.printf("hello world"); 05.} 06.void main() 07.{ 08.print(); 09.}这样写的确是没问题,但是违背了题目的要求,因
阅读全文
posted @
2013-04-25 14:50
猿人谷
阅读(204)
推荐(0) 编辑
C++重点知识
摘要:来源:http://www.cnblogs.com/lzjsky/archive/2011/01/18/1938507.html2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对引用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完 毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引 用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引
阅读全文
posted @
2013-04-25 14:43
猿人谷
阅读(687)
推荐(0) 编辑
(转)继承的相关问题
摘要:析构函数如果一个类想被别人继承,通常析构函数要声明为虚函数,否则,如下代码就会出现未定义情况。Base* p=new Derived();delete p;这句话反过来说,就是如果你不打算让别人派生你的类,就不要把析构函数声明为虚函数,当然对方是菜鸟的话,你也没办法。极端特殊情况下,只要使用者保证不会多态的析构(像上面的例子),也可以通融。继承与访问权限基类的private成员,只能由基类或者基类的友元访问,也就是说既不能被类外部的调用者(客户)访问,也不能被子类访问。或许是提供一种相对宽松的选择,protected成员允许派生类访问,但是拒绝外部调 用者的访问。<<C++Prim
阅读全文
posted @
2013-04-19 16:29
猿人谷
阅读(311)
推荐(0) 编辑
僵尸线程
摘要:来源:http://www.cnblogs.com/dongzhiquan/archive/2012/07/12/2588906.html在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等.但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等),直到父进程通过wait / waitpid来取时才释放,此时该进程便成为僵尸进程。1.什么是僵尸进程? UNIX 系统中,一个进程结
阅读全文
posted @
2013-04-19 16:18
猿人谷
阅读(4178)
推荐(1) 编辑
(转)静态成员函数小结
摘要:类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。 其定义方式与全局变量相同。举例如下: xxx.h文件 class
阅读全文
posted @
2013-04-18 17:12
猿人谷
阅读(250)
推荐(0) 编辑
C++中派生类对基类成员的访问形式
摘要:来源:http://www.cppblog.com/woaidongmao/archive/2010/07/01/119024.htmlC++中派生类对基类成员的访问形式主要有以下两种:1、内部访问:由派生类中新增成员对基类继承来的成员的访问。2、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则。1、私有继承的访问规则当类的继承方式为私有继承时,基类的public成员和protected成员被继承后成为派生类的private成员,派生类的其它成员可以直接访问它们,但是在类的外部通过派生类的对象无法访问。基类的priv
阅读全文
posted @
2013-04-17 13:46
猿人谷
阅读(1635)
推荐(0) 编辑
面试题--特别是字节对齐
摘要:来源:http://www.cnblogs.com/Braveliu/archive/2013/01/04/2844757.html【1】设置或者清除某位。示例代码如下: 1 #include<iostream> 2 using namespace std; 3 4 #define BIT3 (0x1<<3) 5 6 void Set_bit3(int &a) 7 { 8 a|=BIT3; 9 }10 11 void Clear_bit3(int &a)12 {13 a&=~BIT3;14 }15 16 void main()17 {18 int
阅读全文
posted @
2013-04-15 13:32
猿人谷
阅读(563)
推荐(0) 编辑
堆与栈
摘要:来源:http://www.cnblogs.com/Braveliu/archive/2013/01/04/2844858.html 堆是堆,栈归栈在阅读以下内容之前,请了解一下几点:第一:坚决澄清:堆是堆,栈归栈。第二:曾经的“堆栈”再不允许重谈,简直就是扯淡!第三:下面内容均属于从内存分配角度的阐述,不要与数据结构混淆。【1】程序的内存分配(1)内存分配详解一个由C/C++编译的程序占用的内存分为以下几个部分<1>栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。<2>堆区(heap) — 一般由程序员设计分配及释放,若程序员不释放,程序
阅读全文
posted @
2013-04-15 13:28
猿人谷
阅读(241)
推荐(0) 编辑
进程和线程的区别(重点)
摘要:来源:http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将
阅读全文
posted @
2013-04-12 14:13
猿人谷
阅读(360)
推荐(0) 编辑
进程和线程的区别
摘要:学习电脑和编程语言就会遇到进程和线程,初学者往往会在此陷入迷茫和纠结中。其实弄清这两个概念不是很难。从一定意义上讲,进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。方法/步骤进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。通 常在一个进程中可以包含若干个线
阅读全文
posted @
2013-04-12 13:54
猿人谷
阅读(252)
推荐(0) 编辑
最有价值的Linux资料大全
摘要:来源:http://51ctoblog.blog.51cto.com/26414/929322#559183-qzone-1-70272-9032e4e5e88102269a9addf0a99ae97c20年前的夏天,Linux之父 你牛死.脱袜子 (Linus Torvalds) 勇敢的向全世界共享他编写的操作系统,从此这个诞生于一个偶然机会的Linux开始壮大。博文专题1 【Linux二十周年】爱上Linux的N+1个理由 http://blog.51cto.com/zt/422 构建高可用 Linux 服务器 http://blog.51cto.com/zt/1853 一招一式攻克 Li
阅读全文
posted @
2013-04-09 09:44
猿人谷
阅读(397)
推荐(0) 编辑
Java网络爬虫的实现
摘要:记得在刚找工作时,隔壁的一位同学在面试时豪言壮语曾实现过网络爬虫,当时的景仰之情犹如滔滔江水连绵不绝。后来,在做图片搜索时,需要大量的测试图片, 因此萌生了从Amazon中爬取图书封面图片的想法,从网上也吸取了一些前人的经验,实现了一个简单但足够用的爬虫系统。网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成,其基本架构如下图所示:传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。对于垂直搜索来说,聚焦爬虫,即有针对性地爬取特定主题网页的爬虫,更为适合。本
阅读全文
posted @
2013-04-01 16:27
猿人谷
阅读(710)
推荐(0) 编辑