摘要: 本文主要通过一个测试程序,来观察全局变量、静态变量、局部变量、常量、子函数、函数参数等,它们在内存中的分布规律。最后列举了内存中的几种空间类型。希望对大家有所帮助。变量在内存地址的分布(由大到小):全局\静态(未初始化)、常量数据、全局\静态(初始化)、代码区、堆、栈;栈中的变量按声明的顺序在内存的中依次,地址由大到小。证明了栈的伸展方向是由高地址向低地址扩展的;栈中的变量:主/子函数内声明的非静态变量(包括数组变量、指针变量、const变量);函数的参数变量。…… 阅读全文
posted @ 2013-04-11 09:32 windlaughing 阅读(1752) 评论(5) 推荐(2) 编辑
摘要: 笔者所发表的设计模式系列的随笔一共包含15篇,归纳总结了《Head First 设计模式》一书中的内容。在这些随笔中,尽量用简洁、概括的语言说明每个模式的概念、特点、用法,并配以图片(类图、流程图)给读者一种直观、具体的印象。看了这么多设计模式,我们再来回顾一下“模式”的概念,以及我们应该怎样来应用这些模式。模式:是在某情景(context)下,针对某问题的某种解决方案。…… 阅读全文
posted @ 2013-04-10 19:56 windlaughing 阅读(1846) 评论(5) 推荐(2) 编辑
摘要: 我们一开始只是从功能上或者说从数学意义上理解函数,知道函数名代表的是一个功能(或是说一段代码)。函数名到底又是什么东西呢?一个数据变量的内存地址可以存储在相应的指针变量中,函数的首地址也以存储在某个函数指针变量中。这样,我就可以通过这个函数指针变量来调用所指向的函数了。我们将通过多个示例,来深入理解函数指针的本质。。。 阅读全文
posted @ 2013-04-10 11:40 windlaughing 阅读(59957) 评论(3) 推荐(5) 编辑
摘要: 在计算机系统中,因为有字节的限制(C语言中float类型占4字节,double类型占8字节),小数的表示要复杂的多。IEEE制定的浮点标准得到了所有的计算机的支持。接下来我们将介绍IEEE浮点标准所规定的计算机系统内的小数的组成结构,浮点数的分类,并且举例介绍浮点数的特点。最后介绍浮点数的舍入方式,以及浮点数的运算。 阅读全文
posted @ 2013-04-08 10:16 windlaughing 阅读(4597) 评论(3) 推荐(1) 编辑
摘要: 计算机系统内的整数运算的局限:   表示整数的二进制位是一定的,所以表示的整数的范围是局限的。 “整数”运算实际上是一种模运算:   表示数字的有限字长限制了可能的取值范围,结果运算可能溢出,所以运算结果都是取模之后的。 无符号加法 一个算术运算溢出,是指完整的整数结果不能放到数据类型的字长限制中去。 C语言中真正执行的无符号加法,又称为 模数加法。 …… 阅读全文
posted @ 2013-04-03 14:44 windlaughing 阅读(2112) 评论(1) 推荐(1) 编辑
摘要: SCA(Service Component Architecture)是为实现 SOA 而产生的一种规范。它提供了一种编程模型,能够十分方便、快速地来构建 SOA 所需的系统和应用。 SCA内部既融合了IOC的思想,同时又把面向对象的复用由代码复用上升到了业务模块组件复用,同时将服务接口,实现,部署,调用完全分离,通过配置的形式灵活的组装,绑定。从代码级的面向对象思想,到组件级的EJB概念,再到服务级的SOA理念,是一个开发复用的不断提升的过程,经历的经验教训正在给实践做出最好的指导。SOA提倡的就是更高级别的复用,服务的复用。 SCA基于这样的理念:将业务功能作为一系列的服务而提... 阅读全文
posted @ 2013-04-03 09:57 windlaughing 阅读(2643) 评论(0) 推荐(0) 编辑
摘要: 复合模式 复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。MVCMVC是数个设计模式结合起来的模式MVC是复合模式,结合了观察者、策略模式和组合模式。1、模型使用观察者模式,以便观察者(对模型状态改变有兴趣的对象都可注册成为观察者)更新,同时保持两者之间解耦。 (模型不知道视图、控制器的存在)2、控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为。3、视图使用组合模式。MVC与Webweb工作流程:②Servlet扮演控制器,处理请求,通常回向模型发出请求,处理结果往往以javaBean的形式打包。③④控制器将控制器交给视图,JSP从JavaBean.. 阅读全文
posted @ 2013-03-29 17:26 windlaughing 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 代理模式 为另一个对象提供一个替身或占位符以控制对这个对象的访问。1、使用代理模式创建代表(representative)对象,让代表对象控制某个对象的访问,被代理的对象可以是远程的对象,创建开销大的对象或需要安全控制的对象。类图1、Subject:Proxy和RealSubject都实现此接口,客户可以像处理RealSubject一样处理Proxy对象。2、Proxy:持有Subject类型的引用(指向RealSubject)。Proxy会控制对RealSubject的访问。代理模式在结构上类似装饰者,但是目的不同,装饰者为对象加上行为,而代理则是控制访问。(一)远程代理(RMI过程)(二) 阅读全文
posted @ 2013-03-29 17:17 windlaughing 阅读(949) 评论(0) 推荐(0) 编辑
摘要: 状态模式 允许对象在内部状态改变时,改变它的行为,对象看起来好像修改了它的类。 (因为不同的状态,对用一个操作,有不同的处理)1、将状态封装成独立的类,每个状态下的行为都放在各自状态的类中。2、状态机建模:定义一个状态集合;创建用一个变量持有当前状态对象;当动作被调用时,它就被委托给当前的状态对象。类图:1、Context(上下文)持有一些内部状态,只要有人调用Context的request() 方法,它就会被委托到状态来处理。2、State 接口定义了一个所有状态的共同接口,任何状态都实现这个接口,以便状态之间可以相互替换。3、每个ConcreteState都提供了它自己对于请求的实现。.. 阅读全文
posted @ 2013-03-29 17:13 windlaughing 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 组合模式 允许你将对象组合成树形结构来表现“整体/部分”的层次结构。组合能让客户以一致的方式处理个别对象及对象组合。 换句话说,在大多数情况下,我们可以忽略 对象组合 和 个别对象 之间的差别。树形结构:类图1、Component(组件)为组合中的所有对象定义一个接口,不管是组合还是叶节点包含其他组件的组件 为组合对象没有包含其他组件的组件为 叶节点对象2、Composite(组合)具有子节点,内部含有一个容器3、Leaf(叶结点)中有些方法没有意义,可以抛出异常。不需要操心面对的是组合对象还是叶节点对象,只需对整体结构调用一个方法就可以。(转载请注明出处 ^.^) 阅读全文
posted @ 2013-03-29 17:11 windlaughing 阅读(299) 评论(0) 推荐(0) 编辑