摘要: php用引用计算和写时复制(copy-on-write)来管理内存。写时复制确保在变量之间复制值时不浪费内存,引用计算确保在引用不再需要时将内存返回给操作系统。要理解PHP中的内存管理,必须首先理解符号表(symbol table)的思想,变量有两部分–变量名(如$name)和变量值(如”Fred”)。符号表是一个数组,此数组将变量名映射到其值在内存中的位置。当从一个变量复制值到另一个变量是,PHP没有因为复制值而得到更多的内存,而是更新符号表,以表明“这两个变量是同一块内存的名字”。所以下面的代码实际上并没有创建一个新数组:$worker = array(“Fred”,35,”Wilma”) 阅读全文
posted @ 2011-05-27 14:34 winxp_520 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 学习一门语言前,肯定是先学习这门语言的变量。要想深入了解这门语言,变量在内存中的管理尤其重要。 Python中变量的定义和声明是很随意的,你可以在任何你想要开始使用变量的时候去定义吧,这和C有区别。而且声明变量的时候无需指定变量类型,它的类型会在变量赋值的时候由Python内部的解释器确定。注意,Python变量也需要遵循先创建赋值之后才可以使用的原则。 作为一个优秀的程序,相信我们一定会仔细研究一门语言的变量在内存中是如何管理的,是否需要我们手动释放内存?很幸运的是,Python解释器已经帮我们解决了这个复杂的问题。那它是怎么做的什么时候回收那些对象呢? Python引入了一个机制:引用计数 阅读全文
posted @ 2011-05-27 14:29 winxp_520 阅读(1978) 评论(1) 推荐(0) 编辑
摘要: 写本文的目的是为了解决一下问题:Python是什么?Python能干什么?有什么优势?我为什么要学习Python?对我工作有什么好处?第一次知道Python是去年的五月份,当时我正来北京找工作,住在同学波波那里。面试成功之后就是等通知,一个人呆在宿舍很无聊。无意间发现同学的床头有一本《Python 核心编程 第二版》,拿起来看了看目录,发现跟大多数介绍语言的书籍一样,先讲变量类型,运算符,循环语句,然后是具体数据类型的操作及相关模块API的介绍,字符串处理,socket编程什么的。最让我感到惊讶的是,python居然的语句块居然不是用{}来标示的。同学回来时问了问他,怎么要学python。他告 阅读全文
posted @ 2011-05-27 14:27 winxp_520 阅读(870) 评论(0) 推荐(0) 编辑
摘要: C中的数据在内存的存储可以用存储时期、作用域和链接来体现。 存储时期 存储时期分为静态的、自动的和分配的。静态的变量一般用关键字static来标示(全局变量不用static也是静态的),它在程序开始执行的时候就为变量分配内存空间,在整个程序中一直存在。自动的用auto来标示(默认省略auto),变量的内存空间要在程序执行到该变量的代码块的时候才开始分配,在退出该代码块时就自动释放了。如果是手段分配的,需要调用malloc()或者calloc()函数来开辟内存空间,同时也需要手动调用free()来释放该内存空间,如果超出改变量的作用域还没有手动释放内存,则该块内存由于无法利用而变成垃圾空间了,可 阅读全文
posted @ 2011-05-27 14:20 winxp_520 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 在OOD时,我们通常要搞清楚,我们的类与类之间的关系。通常有以下几种:1.继承继承可能是我们最容易理解的类关系了,它可以用“isa”来描述。通常表现是类和类(抽象类)的继承、接口和接口的继承、以及类对接口的实现。比如我们现在有个抽象类DB,MysqlDB和SqlliteDB分别使用extends关键字继承DB类,这样不仅MysqlDB和SqlliteDB要实现DB类定义好的抽象方法,而且还能继承DB中的已存在的方法。我们可以说MysqlDB是一种DB。这种关系即父子关系,有其父必有其子,但是子可以“青出于蓝而胜于蓝”。注意,其实这包含两种关系,即泛化关系及实现关系,类和类、接口和接口之间是泛化 阅读全文
posted @ 2011-05-27 14:15 winxp_520 阅读(641) 评论(0) 推荐(0) 编辑