自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 模式匹配与访问者模式

访问者模式最近学习Scala的模式匹配,看了一些资料就看到了原来访问者模式和模式匹配有很密切的关系,所以打算先看看什么是访问者模式。我想很多人可能和我一样写了几年代码但是却从来没有使用过访问者模式,或者都没有听说过这个设计模式,不过没有关系,因为它真的很少会使用到。我们先看一下访问者模式的定义: 访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的

2016-06-07 22:15:19 507

原创 Git背后的object

Git是一个版本库,它用来维护与管理项目的修订版本和历史信息。有时候我会觉得Git像是一个时光机,它能带我穿越时空回到过去,并且改写历史,但Git的功能又不仅仅如此,它可以让你在多个空间来回穿梭,甚至可以合并两个空间。我一直觉得学习一个新的事物,首先要学习它的基础和思想,这样自己才不至于会迷失。所以在我们能穿越时空之前,有些基础但却非常东西是需要学习的,要不然就会出现像至尊宝一样的状况,拿着月光宝盒

2016-01-21 20:05:01 5844 1

转载 值得阅读的文章记录

(1)深入理解JAVA内存模型系列文章(作者:程晓明):  http://www.infoq.com/cn/author/%E7%A8%8B%E6%99%93%E6%98%8E

2014-11-14 16:44:31 485

原创 Python单例模式和Borg惯用法及相关问题

    一、单例模式    如果你想保证某个类从始至终最多只能有一个实例,那么单例模式可能会是你首先想到的,使用__new__静态方法可以很简单的解决:class Singleton(object): def __new__(cls,*args,**kwargs): if '_inst' not in vars(cls): cls....

2014-02-26 20:47:20 317

原创 Python多线程 VS JAVA多线程

      最近在学习Python,在网上遇到一哥们问一个关于用Python多线程的问题。具体就是读取一个文件中的IP信息,然利用百度地图open api获取IP所在地的经纬度,最后再将取回的结果分类为“请求成功”和“请求失败”分别存入两个文件中。由于自己也在学,所以也就拿来做了做,并分别用Python3和Java实现。    稍稍分析了一下需求能看的出来里面性能瓶颈有两个:    1...

2014-02-19 20:58:48 364

原创 Centos 中 vim 中文乱码问题

    我从windows系统里把一个UTF-8的文件传到centos里,用vim打开却发现中文全部都是乱码,随即在网上查了原因,找到解决办法。以下是几点要注意的要点:<1>  确认文件的编码file是检测文件类型的命令,用它检测文件类型OK--文件UTF-8编码。 <2>  确认ssh终端的编码如果你使用的是SecureCRT,也要注意要把...

2014-02-17 20:57:57 710

原创 vim多行注释/删除注释

按键操作:注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"//",再按Esc,就会全部注释了。删除:先按v,进入visual模式,横向选中列的个数(如"/ /"注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号。使用替换命令::%s/^/...

2014-02-14 16:58:20 84

原创 python heapq

二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:    1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。    2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆: 由...

2014-01-22 10:04:00 111

原创 Python 类型和对象

Python 类型和对象原址:http://wiki.woodpecker.org.cn/moin/PyTypesAndObjects#A.2Bj9lOm2cJTsBOSGEPTkk- Shalabh ChaturvediCopyright © 2005-2009 Shalabh ChaturvediAll Rights Reserved.(小明同学译 wjm251 A...

2013-12-30 20:19:51 138

原创 五分钟理解元类(Metaclasses)

五分钟理解元类(Metaclasses)真的,它并非巫术。原文地址:http://blog.csdn.net/gzlaiyonghao/article/details/3048947  “元类的魔幻变化比 99% 的用户所担心的更多,当你搞不懂是否真的需要用它的时候,就是不需要。”—Tim Peters本文源于在 PyCon UK 2008 上的一个快速演讲。元类...

2013-12-28 10:27:14 113

原创 Python命名空间的本质

Python的命名空间是Python程序猿必须了解的内容,对Python命名空间的学习,将使我们在本质上掌握一些Python中的琐碎的规则。接下来我将分四部分揭示Python命名空间的本质:一、命名空间的定义;二、命名空间的查找顺序;三、命名空间的生命周期;四、通过locals()和globals() BIF访问命名空间重点是第四部分,我们将在此部分观察命名空间的内容。一、命名空间...

2013-12-27 15:28:55 96

原创 字符串匹配的KMP算法

字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都...

2013-12-02 11:19:40 78

原创 Python中zip()函数用法举例

定义:zip([iterable, ...])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),看下面的例子就明白了:>>> a ...

2013-11-26 18:39:16 125

原创 hadoop shuffle机制中针对中间数据的排序过程

            如果对Hadoop的shuffle机制有所了解的人都知道,map所产生的中间数据在送给reduce进行处理之前是要经过排序的。具体过程实际上是快速排序,堆排序和归并排序的完美结合。     首先,当map函数处理完输入数据之后,会将中间数据存在本机的一个或者几个文件当中,并且针对这些文件内部的记录进行一次快速排序,这里的排序是升序排序。在map任务将所有的中...

2013-11-03 23:24:11 202

空空如也

空空如也

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

TA关注的人

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