自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

原创 PHP怎么在字符串里调用静态成员函数

有个类叫A,里面有个静态函数叫a怎么在字符串里调用?"A::a()" ?这样肯定不行PHP现在支持这样的玩法$strClassName = "A";$strMethodName = "a";"{$strClassName::$strMethodName()}";代码一下就高大上了,马上都可以找老板要求加薪了~

2014-02-21 13:20:07 355

原创 PHP防止类重定义的玩法

C防止重定义好说,在头文件里#ifndef __XXX__#define __XXX__class xxx{}#endifPHP咋搞?有个函数叫include/require _once,看起来好像能满足上述需要,但实际上不是_once函数保证文件只被包含一次,这个保证是基于路径的,而不是基于定义的如果有个文件叫 a.php,另一个文件叫b.php,

2014-02-20 13:54:05 205

原创 JAVA 类的非静态方法貌似都是虚(virtual)的

C++中有类的成员函数分虚和不虚两种对不虚的方法,即使子类中有同名,同形参的方法,父类指针或引用也调用的父类的方法,对虚方法,父类指针或引用调用子类的。JAVA中这点不同,若子类重写了父类的方法,则父类的引用直接调子类的,因此我是不是可以认为,JAVA中的非静态成员函数都是虚函数

2013-07-28 23:42:16 257

原创 Hadoop RawFileSystem 和 CheckSumFileSystem

Hadoop中支持广泛的文件系统,从本地文件系统到HDFS。在这些文件系统的底层,由checksumfilesystem和rawfilesystem提供了基础支持rawfilesystem是所有文件系统最底层的组件,其功能就是用最接近操作系统本身的方式生成和处理文件checksumfilesystem是hadoop数据完整性保证的核心,其工作于rawfilesystem之上,使用raw

2013-07-23 20:25:03 472

原创 Java基础类型为什么不提供无符号数与位掩码操作陷阱

一个数值,特别是整数,在有无符号的条件下,能表示的数值范围不同。在C/C++中,数据都是有符号之分的,但这也造成了一个严重的问题,看以下的代码:char c = 0x80;int n = c;printf("%x", n);即使是字符类型,也是有符号的,因此当c被赋值为0x80的时候,它直接代表-128c向n做类型转换,n也是有符号的,因此c对n而言就是-128,n也被赋值

2013-07-20 18:20:16 936

原创 Java在运行时对类文件的搜索规则

Java在运行程序的时候需要输入被运行的类名。当类名输入后,Java会遵守以下规则寻找该类的文件:第一步在将输入的类名中的所有“.”更换为目录的分割符号例如,你某个目录里存在a.class,你在终端进入了这个目录,输入java a.class你以为java是直接打开a.class运行吗?你错了!java将你的输入转化成了“a/class”java 后面跟的是类的

2013-07-20 13:29:41 473

原创 Hadoop Streaming - Java 菜逼的救星!

首先,文题中说的JAVA菜逼就是我……1. Hadoop streaming 是个什么东西?Hadoop Streaming是一种可以让任何语言都能进行Map-Reduce操作的东西。它会将整个数据的分片作为标准输入交给映射程序,然后要去映射程序将映射结果输出到标准输出供归约程序使用。在一般的情况下,由于文件是成行存放的(如果文件中有二进制数据,在进入MR之前是不是可以Ba

2013-07-20 00:17:25 96

原创 Haoop运行jar包的时候,jar参数和-jar参数的区别!

-jar 会启动java运行jar包,这时候会报各种类没有定义的异常打开 haoop在bin的脚本文件hadoop.shexec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"这句话实际上就是最终执行你haoop指令的东西,看到没,都是用java启动的如果

2013-07-19 16:46:38 477

原创 Hadoop分布式模式下几个需要配置的重要参数

1. core-site.xml===========hadoop.tmp.dir是要配的,不然就给你写到/tmp里面你生没脾气

2013-07-18 23:04:00 105

原创 ubuntu 12.04 LTS 伪分布式搭建

怎么搭建伪分布式的hadoop不是一个问题,问题是配好了让这玩意启动真是头疼了。1. 创建那几个配置xml=================这个网页:传送门上面是怎么在独立模式和伪分布式模式下创建hadoop要用的站点,hdfs和mapred的简单配置文件2. 格式化一个hdfs namenode出来=================用hadoo

2013-07-18 17:08:30 269

原创 第一个Map-Reduce程序

1. 开发环境=========hadoop:Hadoop 1.1.2Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782Compiled by hortonfo on Thu Jan 31 02:08:44 UTC 2013From source wi

2013-07-18 13:05:08 408

原创 unix/linux系统上,不同用户共同使用命名信号量等对象时的注意事项

很多情况下开发场景是这样的: 两个程序,分别用用户A,B在跑。A,B之间要使用共享数据,例如共享内存,信号量等,就需要触及权限问题。一般的处理方法是,A创建的对象,例如命名信号量,需要赋予other一定的读写权限(我们假定A, B不是一个用户组)。这时候我们假设A里面有这么一段程序sem_t *pSem = sem_open("Shared-Semaphore-Fo

2012-10-18 11:27:21 578

原创 利用KAD算法进行海量数据处理

KAD是分布式HASH表的一种组织方式,每一个资源具备资源识别符号,我们称它是RID,每一个存储资源索引信息的节点具备其节点ID,我们称它是NID。资源的索引信息存放在NID与RID距离最短的节点上。所谓距离最短,就是这两个识别符号的异或值相对其它节点最小。通过这样的存储方式,不同的资源索引信息就被分布到了网络中的各个终端上,形成了分布式的HASH表。当需要获取一个资源的信息时,可以通过计

2012-04-17 20:09:18 1015

原创 [心得]使用WCT API来侦测程序死锁问题

WCT( Wait Chain Traversal) 是微软在Windows Vista开始提出的一套检测线程死锁的API机制。在介绍这套API之前,我先介绍一下什么是死锁。A线程等待B线程的某个资源,同时B线程等待A线程的某个资源,这时A,B线程都永远无法执行,这种情况

2011-10-18 19:57:37 1761 1

原创 小实验:waitabletimer 如果设定了一个已经过期的时间作为初始值会怎么样呢?

实验:设定一个已经过期的时间作为初始值,查看:1。Timer是否能够立刻激活2。如果Timer还有周期激活的特性,那么周期应该怎么算呢,是从已经过期的时间开始算起?还是从设定timer的当前时刻算起?/* 本代码的意图在于查看如果你给Timer设定一个已

2011-10-13 13:32:40 1157

原创 内核态同步对象之“事件”

事件是一种很常使用到的,用于同步的内核对象。它分为两种:手动挡的>,自动挡的>手动挡:顾名思义,如果一个事件激活之后,你不显式调用ResetEvent的话,那么事件就一直处于激活状态。自动挡:在任何一个线程waitfor函数成功之后,该事件就会被重新调整为未激

2011-10-12 19:45:19 2800

原创 人2X不能怪笔试出题的之求数组连乘问题(搜狗)

一个程度为N的数组,现在要令a[0] = a[1]*a[2]....a[n-1]a[1] = a[0]*a[2]....a[n-1]a[2] = a[0]*a[1]....a[n-1]...a[n-1] = a[0]*a[2]...a[n-2]条件

2011-10-08 09:46:29 2179

原创 你好,我是炸弹人!(将一个二维数组中,所有0所在行和列都置为零,其他位置的值不变)

小时候玩炸弹人的游戏咱们都知道,你扔一个炸弹出去它会形成十字火焰,然后等你威力提高之后,整个一行和一列都是火焰。因此我现在把这个算法就叫做炸弹人问题。这是提出问题的贴子:点击打开链接里面有很多人提出下面的算法。整个算法思想很简单。事先约定好一个肯定不会在数组中出现的数

2011-10-03 02:18:22 1467

原创 把一个二分查找树通过指针转化的方式改成排序双链表(传说是MS出的题)

这个题目花里胡哨地东西很多,但是说到底是考察了以下的两个基础知识:1. 二分查找树如何转成一个有序序列?(中序遍历)2. 树怎么知道自己遍历上的前驱和后继?(树的线索化)解这个题目不难,只需要在中序遍历函数中增加一个全局的指针变量,该变量代表上一次遍历的节点,

2011-10-02 01:48:10 1190

原创 海量数据统计通解之 超长型字符串的判重与统计——HASH与Trie树双剑合璧!!

在很多情况下我们分割文件,判重和统计数据时都需要借助HASH函数的帮助,例如MD5,SHA1等。例如我现在有50亿个长字符串,每一个字符串1k。我现在希望你统计出来各个字符串出现的频度,给出TOP X神马的。1个1K的字符串我自认为Trie树是不适合的。因此我这个有限

2011-10-01 18:28:20 2879

转载 微软面试题:在1001个整数中找出一个重复出现的数字

出处:http://blog.csdn.net/zhanxinhang>题目如下:假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数

2011-10-01 01:36:31 2506

原创 堆排序小记

堆排序是一种对大量非常高效的排序算法。它只占用1个交换空间,在NLogN的复杂度内完成排序。同时,堆也是种数据结构,它的定义如下:对于数组中下标为 i 的元素,如果 下标2i+1 和 2(i+1)的元素都小于它,那么这个数组就是一个堆,并称其为大顶堆(相对应的,还有小

2011-09-30 19:22:45 1318 1

原创 海量数据统计通解之 整数型数据的频率统计——巧妙应用数值范围分割数据

整数型数据如何判重我已经给出了答案,当位数组过于庞大的时候怎么利用位数组的映射范围分割文件我也给出了答案。现在考虑这么一个事:有这么一天,全中国孩子的高考成绩都汇报给你了(海量数据),现在,我让你统计出来考试总分对应的人数。例如 总分610的有那么1万个人,510

2011-09-30 14:46:03 1704 2

原创 海量数据统计通解之 整数型数据的判重——位映射的妙用

首先,我解释一下什么是位映射(bitmap)。你可以将位映射理解成是哈希表的一种压缩表示。哈希表将元素映射到一个存储位置上,位映射将元素映射到一个位数组的某一个位上。如图所示元素1对应HASH表的第0个存储位置,在位映射中,第0位代表E1。同理,E2被映射到了第i个存

2011-09-30 12:32:03 1683

原创 海量数据统计通解之 TOP X问题——堆排序在此削铁如泥!

上文讨论了怎么把一大堆数据归纳划分到零碎的文件中,让拥有相同特征的数据之间彼此比较和操作。这篇文章现在就解决让你蛋疼无比的TOP X问题。首先。什么是TOP X? X是一个数字,比如TOP 10,TOP 100,或者某些数据的第100小,第100大。一个必然的算法就是我给这些

2011-09-30 01:41:54 2013

原创 海量数据统计通解之 偌大的数据,“弱小”的内存——逐个击破!

通常,海量数据统计上都存在一个普遍问题就是希望内存占用很低。为什么要这么做?因为数据海量,海量到你再有钱也买不了能装下他们的内存。比如这个:有a,b两个文件,每一个里面有50亿个URL,每一个URL为64字节。让你找出来同时在a,b两个文件中的URL。内存只有4g。我

2011-09-29 21:06:21 2257 1

转载 找第k大(小)的数

原帖地址:http://bbs.sjtu.edu.cn/bbstcon?board=Algorithm&reid=1187310487方法很巧妙。找一个标杆然后快排,快排后标杆把数组分成了两种,小于标杆的,大于标杆的,此外,标杆就恰好站在了它应该排列的位置上。如果标杆的下

2011-09-29 19:48:52 927

原创 人2X不能怪笔试出题的之:淘宝2012校园招聘研发类算法第一题,树的所有兄弟链表化。

2012,淘宝笔试第一题,我被无情地鄙视了,自己算法基础真是不好,在当时没能看出这道题的解法。题目要求:一颗完全二叉树,每一个节点除了pLeft和pRight之外还有一个pNext指针用来指示自己的兄弟,形如下图。要求是写个代码搞定他,分析时间复杂度和空间复杂度?

2011-09-29 13:50:06 1750 1

原创 猴子分桃问题

五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:这堆桃至少有多

2011-09-27 09:05:37 1631

原创 用循环数组解决数组移位问题

笔试也好,面试也罢,一种经常见到的问题就是我给你一个n个元素的数组,然后让你左移或者右移m个元素。比如 1 2 3 4 5 6 7 左移3个元素就是 4 5 6 7 1 2 3,跟2进制的移位差不多。解决这类问题有很多种办法,比如把数组切割为m个元素和n-m个元素两组,先

2011-09-26 15:47:22 2084 1

原创 多线程环境下调用SendMessage交叉发送消息可能导致的死锁问题

很多时候多线程环境下你会在不同的线程之间拥有许多窗口,或者多个线程之间通过消息机制通讯,此外,你还用诸如临界区等等互斥体来保护临界数据。在这样的复杂情况,如果不慎在线程之间交叉使用SendMessage发送消息,就可能导致死锁隐患。比如下面的一个例子:线程A对临界区上锁,

2011-09-26 15:07:32 2387

原创 百度2010年笔试题解答之“求一个字符串里最长连续字串”

我能想到的算法就是一个O(n)的算法,从字符串开头开始unsigned int nMaxContinuLen = 0;unsigned int nCurrentContinuLen = 1;先把第一个字符加入到一个临时结果串里 for(unsigned int i=

2011-09-26 01:59:01 1393 1

原创 轻型读写锁(Slim read write lock)

Windows提供了很多机制进行互斥来保证共享资源不被污染,比如临界区,比如信号量,比如互斥体等等。前一篇对临界区的博文里说过,临界区会先自旋,等自旋不行了再创建内核对象。这样做的原因是从用户模式转到内核模式非常耗费时间,而且常常转换还没完成呢,持有资源的线程已经释放了资源。因此

2011-09-25 00:03:26 1919 1

原创 使用临界区对象(CriticalSection)需要注意的一些事情

1. 临界区对象不是内核对象,因此不能继承,不能跨进程,也不能用waitfor什么的函数来限定时间等待。这个很好理解,你想想WaitFor要求传一个句柄,而临界区对象的类型都不是句柄,也不能用CloseHandle来关闭,怎么可能会能让WaitForXXX搞了。2. 临界

2011-09-24 15:02:51 1779 2

原创 通过修改IAT来拦截API

跟进程打过一定交道之后你肯定会知道,进程在开始执行的时候会被加载到一个基地址,也就是GetModuleHandle(NULL)对应的值。在基地址后面的一定地址范围里存储有进程的映像文件(image),其中包含了很多信息,比如数据啊,代码啊什么的。在这些数据里,有一个比较重要的部分

2011-09-23 21:52:22 674

原创 各种排序算法总结

1. 直接插入排序,这没什么技术含量,每一次都在表里找到元素应该插入的位置然后把整个表的后续元素后移。这真没什么技术含量。2. 折半插入排序,就是用折半查找找到插入的位置,然后后移。3. 2路插入排序,这排序算法就是利用循环表,有一个循环表,刚开始表头和表尾都在表的下标0

2011-09-16 18:59:15 265

原创 平衡二叉树结点的插入

平衡二叉树是指左右子树的深度差不超过1的二叉树,通常用来优化二叉排序树。平衡二叉树在构建过程和结点插入过程中遵守这样的法则:1,如果想向某树的左子树的左子树插入结点导致失衡,那么如何平衡这棵树?      首先,这样一棵树肯定符合下图:      (1)

2011-09-14 21:29:45 561

原创 平衡二叉树结点的插入

平衡二叉树是指左右子树的深度差不超过1的二叉树,通常用来优化二叉排序树。平衡二叉树在构建过程和结点插入过程中遵守这样的法则:1,如果向某颗子树的左子树插入一个结点导致二叉树

2011-09-14 20:21:32 154

原创 二叉排序树的插入和删除

二叉排序树就是左子树的数字比树根小,右子树的数字比树根大的一颗二叉树。插入一个结点到这样的树里很简单。首先比它和根谁大,大往右找插入位置,小往左找插入位置。到了子树继续比和根谁大,如果大就往右找,如果小就往左找,这样递归到某个子树的根没有左子树或者右子树,如果小,就插

2011-09-14 14:58:44 290

原创 收费站与图中最短路径的问题

首先是一句牢骚:为什么国人写书就喜欢各种公式和符号,一定把这本书写的你看了半天都不知道是在说什么他才觉得成功呢?言归正传:问题描述:从图中的一个点,怎么找到和其它点距离最短的路径?这是一个很平常的问题,你去任何地方都会希望找到一个距离最短的道路,或者是不堵车(对应到计算机

2011-09-11 18:55:01 628

Windows核心编程第五版

Windows核心编程的第五版(英文),任何一个从事Windows开发的人都没有理由不看吧

2011-10-18

进程死锁查看器

通过Windows的WCT API来查看系统中的进程是否存在死锁

2011-10-18

空空如也

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

TA关注的人

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