自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 资源 (10)
  • 收藏
  • 关注

原创 使用Python扩展NotePad++

要使用Python扩展NotePad++,首先需要为NotePad++安装Python Script插件,NotePad++插件的安装方法可以参考这里。安装了Python Script插件后,在菜单的Plugins下就会看到Python Script菜单了。Python Script介绍点击Plugins->Python Script->New Script菜单,打开的目录就是用户的Python脚

2015-07-16 18:56:26 14512 1

原创 Python介绍

Python是一种面向对象的解释性的计算机程序设计语言,也是一种成熟、稳定、完善的通用性语言,具有丰富的类库。 Python也是一种高级语言,相比低级语言来说,编写Python程序耗时更少、程序更短,因此更容易阅读,也更容易保证程序的正确性。作为高级语言,Python是可移植的,同样的程序可以在不同类型的系统上运行。 这篇文章将介绍Python的历史、优点和缺陷,并为你介绍Python 3的基本

2015-07-10 13:50:54 2829

原创 Python多线程4:_thread

_thread模块是threading模块的基础模块,为多线程提供了低级别的基元(也称为轻量级进程或任务)。为了同步,简单的锁(也叫做互斥锁或二元信号量)被提供。threading模块在该模块的基础上提供了更易使用并且更高级别的线程API。该模块支持Windows、Linux、SGI IRIX、Solaris 2.x、以及任何实现了POSIX线程的系统。_thread模块它定义了如

2015-06-26 09:54:27 5625

原创 Python多线程3:queue

queue模块实现了多生产者,多消费者队列。在多线程环境下,该队列能实现多个线程间安全的信息交换。queue模块介绍模块实现了3种类型的队列,区别在于队列中条目检索的顺序不同。在FIFO队列中,按照先进先出的顺序检索条目。在LIFO队列中,最后添加的条目最先检索到(操作类似一个栈)。在优先级队列中,条目被保存为有序的(使用heapq模块)并且最小值的条目被最先检索。queue模块定

2015-06-25 12:51:27 6231

原创 Python多线程2:sched

sched模块提供了一个用于事件调度的类。scheduler类定义class sched.scheduler(timefunc=time.monotonic, delayfunc=time.sleep) scheduler类为事件调度定义了一套通用接口。它需要传入两个函数:1)timefunc是一个没有参数的callable,并且返回一个一个数字(表示“时间”,任意单位)。如果ti

2015-06-24 12:32:05 4496

原创 Python多线程1:threading

threading模块提供了高级别的线程接口,基于低级别的_thread模块实现。模块基本方法该模块定了的方法如下:threading.active_count()        返回当前活跃的Thread对象数量。返回值和通过enumerate()返回的列表长度是相等的。threading.current_thread()        返回当前线程对象,对应调用者的

2015-06-23 15:13:22 6068 1

原创 Python正则表达式:如何使用正则表达式

正则表达式(简称RE)本质上可以看作一个小的、高度专业化的编程语言,在Python中可以通过re模块使用它。使用正则表达式,你需要为想要匹配的字符串集合指定一套规则,字符串集合可以包含英文句子、e-mail地址、TeX命令或者其它任何你希望的字符串。然后您能提这样的问题:“这个字符串匹配这个模式吗?”,或者“在这个字符串中存在这个模式的匹配吗?”。你也能使用正则表达式修改一个字符串或者分离它。

2015-06-08 18:22:55 7970 1

原创 python18:基础库概述续

这里介绍Python的高级模块,用于专家级编程的需要,在小的脚本中很少使用。输出格式化reprlib模块提供了repr()的一个版本,定制大的或者多层嵌套的容器的简洁展示:>>> import reprlib>>> reprlib.repr(set('supercalifragilisticexpialidocious'))"set(['a', 'c', 'd', 'e',

2015-05-26 09:45:39 86108

原创 python17:基础库概述

这里对python的基础库做一个简要概述,包括每个模块的基本功能和常用操作。更详细的信息请参考Python库参考。操作系统接口操作系统接口对应os模块,用于与操作系统交互:>>> import os>>> os.getcwd() # 返回当前的工作目录'C:\\Python34'>>> os.chdir('/server/accesslogs') # 改变当前工作目

2015-05-13 11:20:00 1792

原创 python16:文件

文件的读写是编程中的常见操作,在Python中,对文件的处理非常简单。打开文件通过open()方法打开一个文件,并返回文件对象,需要传入两个参数:open(filename, mode)。例如:>>> f = open('workfile', 'w')第一个参数是包含文件名的字符串,第二个参数描述了文件被使用的方式,包括:    1)'r':只读;    2)'w':只写(如果

2015-05-12 09:29:34 1686

原创 python15:迭代器和生成器

迭代器和生成器都是Python提供的强大工具,可以帮助用户写出优雅的代码。下面介绍迭代器和生成器的使用方法和内部机制。迭代器在Pyton中,大部分的容器对象都能用于for循环中:for element in [1, 2, 3]: print(element)for element in (1, 2, 3): print(element)for key in {'on

2015-05-08 11:02:55 1446

原创 python14:错误和异常

在编程的过程中,总是无法避免处理异常的情况,这些异常也有可能是错误,也有可能是一些偶现的异常,Python中提供了处理这些情况的有效机制。语法错误语法错误,即解析错误,也许会是你学习Python的过程中遇到最多的错误:>>> while True print('Hello world') File "", line 1, in ? while True print('Hel

2015-05-07 10:34:14 1574

原创 python13:类

Python是面向对象的语言,Python中的类提供了面向对象的所有特征:多态、封装和继承。    1)多态:可以对不同的对象使用同样的操作,它会根据对象(或类)类型的不同而表现出不同的行为;    2)封装:对外部世界隐藏对象的工作细节;    3)继承:以普通的类为基础建立特定的类对象。更多面向对象的概念请参考专门的面向对象的书籍,下面将介绍Python中类的定义和使用方法。

2015-05-05 12:27:41 1353

原创 python12:模块

到目前为止,你已经可以使用python实现你想要的功能。但当你编码一段时间后,随着代码量的增长,你可能想将你的代码分解为多个文件,便于管理;你也可能想使用一些已经写好的函数,而不用将他们拷贝过来。为了支持这些功能,python提供了方法将函数定义在一个文件中,并能在其它脚本文件中使用他们,这样的文件就叫做模块。在一个模块中的定义能被导入其它模块或者主模块中。模块基础一个模块就是一个文件

2015-04-27 10:48:39 1431

原创 python11:函数

当你需要编写大型程序时,你可能想要写一段代码供其它地方调用,或者将程序中的相同逻辑抽出来,这时你就需要用到函数。但函数不仅能提供这些功能,通过使用函数还能帮助我们更容易的理解代码。定义函数下面的代码定义了一个函数fib,用于计算Fibonacci数列:>>> def fib(n): """Print a Fibonacci series up to n.""" a,

2015-04-23 15:02:46 1931

原创 python10:条件判断和循环

程序不总是顺序执行的,所以需要条件控制语句来支持分支处理,循环来处理反复多次调用。下面将减少python中的条件判断和循环语法。条件判断条件判断就是当某个条件为真时执行某个程序片段,否则执行另一个。>>> x = int(input("Please enter an integer: "))Please enter an integer: 2>>> if x < 0: x =

2015-04-20 14:33:40 10039

原创 python9:字典

map是python中的映射类型,是可变对象,用于将一个值映射到另一个值。map中的值没有特殊的顺序,都是与一个key对应,key可以是数字、字符串或者元组(即不可变类型)。需要注意当key为数字时,使用一下的原则:如果两个数字的值相等(例如1和1.0),则他们用于key时对应同样的条目(但是需要注意,由于计算机存储浮点型为一个近似值,所以使用浮点型作为key不是一个明智的选择)。构造字典

2015-04-16 17:06:43 1306

原创 python8:集合

集合对象是一组无序排列的可哈希的值,集合中不包含重复的值。通常用于包含成员测试、移除序列中的重复元素和数学操作运算,例如:交集、联合、差异和对称差等。集合支持in和not in操作,len()操作,和在for循环中迭代集合成员。但由于集合是无序的,你不能为集合创建索引、切片、或者其他类似的序列行为。集合包含可变集合(set)和不可变集合(frozenset)。set不能用于字典的键(key

2015-04-07 15:48:57 1605

原创 python7:字符串

在Python中,字符串对应对象str,字符串是使用Unicode编码的不可变序列。构造字符串字符串可以使用下面几种语法:    1)单引号:'allows embedded "double" quotes'    2)双引号:"allows embedded 'single' quotes"    3)三引号:'''Three single quotes''', """Thr

2015-04-03 16:40:29 2068

原创 python6:序列之元组和range

元组是不可变序列,通常用于存储异构数据的集合。range也是不可变序列,但只用于数字,通常用于for循环中。构造元组构造元组有以下方法:    1)用一对括号表示一个空元组:();    2)在单个元素后跟逗号表示单个元素的元组:a,或者(a,);    3)用逗号分隔的多个元素:a,b,c或者(a,b,c);    4)用tuple()或者tuple(iterable)构

2015-04-01 16:32:49 3556

原创 python5:序列之list

list是可变序列,通常用于存储同类型的元素。下面介绍list的专用方法,并且介绍几种使用list的数据结构。构造listlist可以使用下面几种方法构造:    1)用一对方括号表示一个空list:[];    2)用方括号,元素使用逗号分隔:[a],[a,b,c];    3)用表达式:[x for x in iterable];    4)使用list函数:list(

2015-03-30 16:17:24 2215

原创 python4:序列概览

Python中的序列类型包括list、tuple、range、二进制数据、text和string,这里对序列的公共操作做一个介绍,后面将陆续介绍每一种序列类型。公共序列操作所有序列类型都可以近些某些特定的操作,包括:索引、分片、加、乘、计算序列长度、最大值、最小值等操作。索引序列中的每个元素被分配一个序号,第一个索引为0,第二个为1,依次类推。假定s是一个序列,s[i]即表示是的第

2015-03-27 14:24:24 2010

原创 python3:迭代器

python支持在容器上迭代,通过两个方法实现,允许用户自定义,序列总是支持迭代方法,后面介绍序列的时候会涉及更多的细节。容器中的迭代容器需要定义下面的方法以提供迭代支持:container.__iter__()返回一个迭代器对象,对象要求支持后面介绍的迭代器协议。如果一个容器支持不同类型的迭代,需要提供额外的方法指定请求的迭代器类型(例如一个树结构支持两种迭代方式:广度优先和深度

2015-03-25 15:06:09 3504

原创 python2:数字

python支持3种不同的数字类型:整型、浮点型和复数,布尔类型可以看作整型的子类型。python中的浮点型对应C语言中的double,可以通过sys.float_info来查看精度。数字的基本操作python中的数字都支持下面的操作:    1、x + y:x加y;    2、x - y:x减y;    3、x * y:x和y的积;    4、x / y:x和y的商;

2015-03-24 16:59:23 5567

原创 python1:布尔类型

布尔类型用户在条件或循环中作为条件判断,这里介绍python中的布尔类型。True和Falsepython布尔类型对应两个布尔值:True和False,分别对应1和0。看下面的例子>>> True == 1True>>> False == 0True>>> True + False + 2122布尔表达式的值下面的值在作为布尔表达式时,会被解释器看作Fals

2015-03-23 11:01:59 12884

原创 Oracle锁4:系统锁

Oracle数据库用了多种系统锁保护内部数据库和内存结构,这些机制对于用户来说是透明的。闩(Latches)闩是简单的、低级别的序列化机制,协调多个用户使用共享数据结构、对象和文件,闩在并行处理中保护共享内存资源,特别地,闩在下面的场景中保护数据结构: 1)被多个session并行修改; 2)当被一个session读的同时被另一个session修改; 3)当被访问时重新分配内存

2015-02-06 13:17:44 1491

原创 Oracle锁3:DDL锁

当一个正在进行的DDL操作执行在或者引用了schema对象(注)时,Data dcictionary(DDL)锁用于保护该schema对象的定义,在DDL操作执行期间仅锁定单个schema对象,数据库从不锁定整个数据字典。Oracle数据库自动地请求DDL锁,用户不能显示请求DDL锁。例如,如果用户创建一个存储过程,那么数据库自动为存储过程中引用的对象请求DDL锁,这些DDL锁防止存储过程被编

2015-01-20 09:57:35 2498

原创 Oracle锁2:DML操作和锁

Oracle为DML操作自动获取行锁和表锁,操作的类型决定了锁的行为,下面对DML操作锁的情况作了一个汇总:SQL StatementRow LocksTable Lock ModeRSRXSSRXXSELECT ... FROM table...——noneYYYYYINSERT INTO

2015-01-14 16:13:12 2113

原创 从新手到专家-《程序员的思维修炼》

德雷福斯模型认为从新手将专家需要经历5个阶段:新手、高级新手、胜任者、精通者和专家。德雷福斯兄弟的研究表明,从新手到专家要经历巨大的变化,在这个过程中,人们不只是“知道更多”或者获得了技术,而且还在如何认识世界,如何解决问题以及如何形成使用的思维模型等方面体验到根本性的区别,人们获取新技术的方式发生了变化,影响人们工作业绩的外部因素也发生了变化。新手需要指令清单,当一些意想不到的事情发生时,他

2015-01-11 20:00:47 2261 1

原创 Oracle锁1:DML锁

DML锁,也叫做数据锁(data lock),用于保证在多用户操作数据时数据的完整。DML锁防止相互冲突的DML和DDL操作同时发生。DML锁有行锁(Row Locks,TX)和表锁(Table Locks,TM),不同的DML操作会自动请求对应的锁。行锁(Row Locks,TX)行锁也叫TX锁,用于锁表的一行数据。当一个事务对一行数据做INSERT、UPDATE、DELETE、

2015-01-08 10:32:22 2736

原创 Cookies

cookie分为会话cookie和持久cookie。会话cookie:临时cookie,记录了用户访问站点时的设置和偏好,用户退出浏览器时,会话cookie就被删除。持久cookie:存储在硬盘上,浏览器退出,计算机重启时它们任然存在。会话cookie和持久cookie的唯一区别就是它们的过期时间。cookie的工作原理用户首次访问Web站点时,Web服务器会给用户指定一个独有

2015-01-04 10:02:36 1633 1

原创 Oracle tips:drop table和purge

在操作Oracle时,我们经常都会删除一个表,当删除错误后,我们希望能够恢复该表,有时也希望删除表之后能够立刻释放表的空间。下面将介绍在Oracle中表的删除、恢复和空间释放。DROP TABLE当你drop一个表时,数据库不会立刻释放表的空间,而是重命名这个表然后将其放入回收站中,可以通过下面的方式查看一个删除的表:select object_name,original_na

2014-12-29 15:27:27 10273

原创 HTTP请求和响应4:首部(Header)

首部和方法配合工作,共同决定了客户端和服务器能做什么事情,可以将HTTP的首部分为以下几类:1)通用首部;2)请求首部;3)响应首部;4)实体首部;5)扩展首部。通用首部通用首部提供了与报文相关的最基本的信息,可同时用于请求报文和响应报文。通用首部又分为信息性首部和缓存首部。信息性首部首部:Connection描述:允许客户端和服务端指定与请求/

2014-12-25 14:17:37 2677

原创 HTTP请求和响应3:状态码(status)

HTTP状态码被分为了五大类:100~199:信息提示200~299:成功300~399:重定向400~499:客户端错误500~599:服务器错误状态码为客户端提供了一种理解事务处理结果的便捷方式,下面对每一种状态码做了一个总结。100~199————信息性状态码信息性状态码用于信息提示,已定义的信息性状态码如下:1)100原因短语:Continu

2014-12-19 13:26:50 6098 1

原创 HTTP请求和响应2:方法(Method)

方法表明了客户端希望服务器对资源执行的动作,常用的方法包括:GET、HEAD、POST、PUT、TRACE、OPTIONS和DELETE,每个服务器可以实现这些方法中的部分或者全部。下面将对这些方法做一个详细的介绍。GET通常用于请求服务器发送某个资源,HTTP/1.1要求服务器必须实现该方法,下面是一个HTTP请求:GET /seasonal/index-fall.html HT

2014-12-16 17:31:24 3379

原创 HTTP请求和响应1:概述

HTTP的报文分为请求报文和响应报文,打开一个web页面后,浏览器将发起一个HTTP请求报文,HTTP服务器收到请求后将回送一个响应报文。报文的基本结构HTTP的请求和响应报文都由三个部分组成:对报文进行描述的起始行(start line)、包含属性的首部(header)块、以及可选的包含数据的主体(body)部分。请求报文和响应报文在语法上有些差别,下面是请求报文的格式:

2014-12-15 10:53:21 2020

原创 URL介绍

URL(Uniform Resource Locator),统一资源定位符,是互联网上标准资源的地址。大部分URL语法都由9个部分构成:://:@:/;?#不同scheme的URL一般只包含其中的部分组件,其中最重要的3个部分是方案(scheme)、主机(host)和路径(path)。方案(scheme)方案负责告诉解析URL的应用程序应该使用什么协议,常用的方案包括:

2014-11-28 11:06:32 3427

原创 Oracle性能分析12:对象统计信息

对象统计信息描述数据是如何在数据库中存储的,查询优化器使用这些统计信息来做出正确的决定。Oracle中有三种类型的对象统计信息:表统计、列统计和索引统计。而在每种类型中,有细分为:表或索引级别的统计、分区级别统计和子分区级别的统计,后面两种只有在对象被分区和具有子分区的情况下才可用。统计信息相关视图表统计信息表/索引级别的统计user_tab_statisticsuser_ta

2014-10-29 09:59:35 2905

原创 Oracle行迁移和行链接

行迁移和行链接都会导致Oracle性能下降,这篇文章将介绍什么是行迁移和行链接,它们带来的问题,如何来判断它们,并提供了解决它们的办法。什么是行迁移和行链接行迁移Oracle的数据块会保留部分空间供以后更新使用,通常的数据块结构如下:PCTFREE定义一个块保留的空间百分比,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被update(具体看下面

2014-10-16 13:15:41 10972 1

原创 Oracle性能分析11:系统统计信息

早期Oracle查询优化器的开销计算是基于执行SQL语句所需要的物理读,这个方法被叫做I/O开销模式(I/O cost model),这个方法的主要缺点是认为单块读和多块读开销相当。在Oracle 8i中,初始化参数optimizer_index_caching和optimizer_index_cost_adj解决了这个问题,但参数的默认值仅适用于报告系统和数据仓库。直到Oracle 9i,ORa

2014-10-09 16:51:41 2249

hadoop-part3

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

2015-08-04

hadoop-part2

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

2015-08-04

hadoop-part1

hadoop-2.7.1 The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

2015-08-04

PersistentIdealHashTree-Java实现

PersistentIdealHashTree的Java实现

2014-04-14

linux教学课件:Advanced Programming in the Linux Environment

linux教学课件:Advanced Programming in the Linux Environment

2009-11-09

深入java虚拟机深入java虚拟机

深入java虚拟机深入java虚拟机深入java虚拟机深入java虚拟机

2009-10-24

linux一句话精彩问答

linux一句话精彩问答linux一句话精彩问答linux一句话精彩问答

2009-06-09

Linux内核结构与进程管理

Linux内核结构与进程管理Linux内核结构与进程管理

2009-06-09

空空如也

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

TA关注的人

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