摘要: 听有意思的一篇文章,果断转载了。(原文地址:http://www.cnblogs.com/ider/archive/2012/03/10/man_is_like_html_as_woman_is_like_css.html)每个HTML都希望自己能呈现给别人亲和的引入注目的感觉,CSS可以帮助HTML实现这样的目的。虽然没有CSS,HTML也可以自己完成同样的修饰,但是可能会一片混乱,不像有CSS的HTML那样,让内容和修饰分开。而仅有CSS,很多想要的效果却也无法看出。有一些呈现的布局效果是HTML自身不能实现的,比如CSS里的伪类、组合。就想男人没有女人,也不会体现出他对家的责任,对爱人的 阅读全文
posted @ 2012-04-30 20:11 陈文斌_5months 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 今天重新翻看单例模式,把以前的几个问题和大家共享下。 这是我在工作室技术交流会上讲单例模式时,大家提出的一些问题和自己总结的答案。 1.实例指针一定要设为静态吗? 因为GetInstance这个方法要用到该实例指针,且GetInstance这个方法是static的,所以这个指针必须是static的,否则GetInstance无法访问该实例指针。以此同时保证了向其他对象提供唯一的同一个内存区的实例指针。2.为什么不弃用懒汉式而直接用饿汉式? 首先,懒汉式是典型的以时间换取空间的例子,就是每次获取实例时都要进行判断,看是否要创建实例,浪费判断时间。当然如果一直没有人用的话,就不会创建实例,则是节. 阅读全文
posted @ 2012-04-26 21:56 陈文斌_5months 阅读(1541) 评论(2) 推荐(1) 编辑
摘要: 这是在网上看到一篇关于快排的文章,个人觉得写得比较好,希望大家也能从中吸取精华喇!快速排序算法是一种基于分治技术的重要的排序算法,自从它被发明以来,就受到了研究人员的广泛注意。多年以来,人们对这个基本算法进行了大量的改良。我搜集并查阅了一些相关的资料,在下文中对这些改进做出一些介绍。 一、基本的快速排序算法 快速排序算法是由C.A.R. Hoare在1961年发明的一种内排序算法,其大致思想如下[5]: 首先,在要排序的序列a中选取一个中轴值,而后将a分区成为两个部分,左边的部分b中的元素均小于或者等于中轴值,右边的部分c的元素均大于或等于中轴值 (分)。而后通过递归调用快速排序的过程分别对. 阅读全文
posted @ 2011-11-20 00:45 陈文斌_5months 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 普通程序员方法: 交换两个数是比较经典而且基础的算法之一。 我们要交换两个数字,一般的做法是定义个中间变量,然后交换赋值。例如:int temp;temp = a;a = b;b = temp; 对于初学者来说,这可以说是除了 hello world 外,敲得最多的一段代码了。但在手持设备中,内存资源很宝贵,甚至要求不开辟新的空间,就地完成交换工作。文艺程序员方法: 这时又有很多人想出了以下的方法,用一个变量存储两个信息的集合,用另外一个变量存储任意一个信息,这种存储方式就可以完成交换的工作。例如:a = a + b;b = a - b;a = a - b;显然这是一个巧妙的方法,但是两... 阅读全文
posted @ 2011-10-19 01:23 陈文斌_5months 阅读(608) 评论(0) 推荐(0) 编辑
摘要: 浅谈了内联函数,似乎也该对宏重新认识下了,然后再总结下宏和内联函数的区别。毫无疑问,平时使用宏要比使用内联函数多得多,但是自己却没有去总结过这个再也熟悉不过的宏。很多时候,我们使用一样东西,往往因为它给你带来了方便而一味的使用它,但是却没有去想过它有什么缺陷,什么时候不能用它。下面引用杨凡的论文《浅析C++中内联函数与宏的区别》来说明。1.宏的缺陷 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前保存现场并且记忆执行的地址,转回后要恢复现场,并按原来保存的地址继续执. 阅读全文
posted @ 2011-10-18 11:30 陈文斌_5months 阅读(2106) 评论(0) 推荐(0) 编辑
摘要: 内联函数在很多人看来并不是很起眼,但是我依稀记得当时自己在学校里去QG工作室面试时,师兄就问到内联函数和宏有什么区别。最近,自己在搞个类似QQ的点对点IM系统,在封装消息实体类时,由于消息实体类中的读写成员函数使用的频率比较高,加上这些函数的函数体比较小,经过综合考虑我就把它们设计成了内联函数。刚好自己想写点什么,今天就总结下这个小而巧的内联函数的。 (一)在这里还是引用《C++Primer》这本书的一些内容,因为参考了很多资料,还是觉得这本书的写的最好的。在了解内联函数前,我们先看下面一个小函数的例子再引出内联函数。 const string &shorterString(const 阅读全文
posted @ 2011-10-11 19:55 陈文斌_5months 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 重载和重写的区别1、重载(Overloading) (1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。(2)Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。(3)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。下面是重载的例子:package c04.answer;//这是包 阅读全文
posted @ 2011-10-11 19:54 陈文斌_5months 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1.内存有几种分配模式内存分配方式有三种:分配方式何时分配何时释放怎样释放优缺点1.静态存储区程序编译时程序结束时自动释放在整个程序周期都存在,但是会一直占用程序资源2.栈上分配函数生成时(进栈时)函数结束时(岀栈时)自动释放栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。3.堆上分配malloc和new分配时free和delete时程序员手动释放生命周期由程序员决定,使用方便灵活,但是也问题多常见的内存错误1.内存分配未成功,却使用了它。2.内存分配虽然成功,但是尚未初始化就引用它。3. 内存分配成功并且已经初始化,但操作越过了内存的边界。4.忘了释放内存,造成内存泄 阅读全文
posted @ 2011-09-08 21:02 陈文斌_5months 阅读(463) 评论(0) 推荐(0) 编辑