在《C++编程思想》一书中对虚函数的实现机制有详细的描述,一般的编译器通过虚函数表,在编译时插入一段隐藏的代码,保存类型信息和虚函数地址,而在调用时,这段隐藏的代码可以找到和实际对象一致的虚函数实现。我们在这里提供一个C中的实现,模仿VTABLE这种机制,但一切都需要我们自己在代码中装配。之前在网上看到一篇描述C语言实现虚函数和多态的文章,谈到在基类中保存派生类的指针、在派生类中保存基类的指针来实现相互调用,保障基类、派生类在使用虚函数时的行为和C++类似
系统 2019-08-29 22:29:10 2159
以前看USB协议2.0的时候,有个认识上的误区,认为所谓的复合设备,必须是两个物理上相独立的USB设备(两个USBDevice,两个USB地址,只是在同一条USB总线而已)。最近在开发.NetMicroFramewok的USB双接口功能时,才明白复合设备原来也可以是这样实现!对USB设备来说,至少会有一个USB配置,而这个配置可以包括一到多个接口,而一个接口又可以包括多个端点。对Windows平台来说,每一个接口在逻辑上对应一个虚拟设备,可以分别安装不同的
系统 2019-08-29 22:16:59 2159
一..NETRemoting简介:.NETRemoting从某种意义上讲是DCOM的替代品。ASP.NETWeb服务十分有用,但是这项技术在企业内联网的解决方案中,对于某些业务请求来说并不快,也没有足够的灵活性,而且,ASP.NETWeb服务需要有运行时的支持。使用.NETRemoting技术后,可以将Web服务提供给世界上的任何地方。而且可以在所有的应用程序类型中运行Web服务。二..NETRemoting的基本原理:体系结构图如下:三.几个重要的概念:
系统 2019-08-29 22:06:55 2159
谷歌和Facebook,一个是高科技产业的霸主,一个是互联网时代的新贵。近两年来,跳槽到Facebook的谷歌员工越来越多,那么你知道这两家互联网巨头的工作环境又有何不同呢?谷歌和Facebook,一个是高科技产业的霸主,一个是互联网时代的新贵,在IT人士看来,前者是世界上最具工作乐趣的企业之一,并且能提供极具竞争力的待遇;而后者则是个初生的孩子,但拥有庞大的潜力。近两年来,跳槽到Facebook的谷歌员工越来越多,包括谷歌地图之父拉尔斯拉斯穆森在内的诸多
系统 2019-08-29 22:01:10 2159
今天早上去SpringSource官网,发现SpringFramework4.0发布了,我认为最重要的两个特性发布了:JDK8的支持和WebSocket编程的支持。亲爱的Spring社区:宣布SpringFramework4.0第一个里程碑版本是我的荣幸。发布一些我们工作的几个关键的主题:第一波是JavaSE8/OpenJDK8支持(在后边有一些细节)。初步支持JMS2.0,JPA2.1,BeanValidation1.1和JSR-236并发(来自EE7体
系统 2019-08-29 22:00:53 2159
2007年,世界级的软件分析大师EricEvans发表了他的经典著作《领域驱动设计》,进而形成了一套独特的软件分析与设计方法,简称为DDD(Domain-DrivenDesign)。在领域驱动设计思想中,有许多是涉及到需求分析领域的先进方法,我把它归纳为有效建模、统一语言和持续学习。有人说:大师所站的高度实在太高了,是生活在太空里的,所以我们要追随大师就只有因为缺氧而死掉。我认为这句话说得非常生动,学习大师真的不是一件容易的事,把大师的思想落实到我们的工作
系统 2019-08-29 21:59:10 2159
借助于jstl,我们可以方便的开发自定义标签,而不需要使用sun的jsptagapi本文以开发一个简单的if标签为例首先编写标签执行类,最重要的一点,继承javax.servlet.jsp.jstl.core.ConditionalTagSupport;代码简单的返回了true.大家可以加入自己的业务逻辑代码packagettt;importjavax.servlet.jsp.JspTagException;importjavax.servlet.jsp.
系统 2019-08-12 09:30:27 2159
“服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语,它的别名叫“Comet”(彗星)。它是继“Ajax”之后又一个倍受追捧的Web技术。“服务器推送技术”最近的流行跟“Ajax”有着密切的关系。随着Web技术的流行,越来越多的应用从原有的C/S的模式下转变为B/S的模式,享受着Web技术所带来的各种优势(例如,跨平台,免客户端维护,跨越防火墙,扩展性好等等)。但是基于浏览器的应用,也有它不足的地方。最主要的地方在于界面的
系统 2019-08-12 09:30:22 2159
基本概念Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用。和其他的java架构一样,Struts也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs框架的核心是一个弹性的控制层,基于如JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及JakartaCommons
系统 2019-08-12 09:29:49 2159
Watcher设置是开发中最常见的,需要搞清楚watcher的一些基本特征,对于exists、getdata、getchild对于节点的不同操作会收到不同的watcher信息。对父节点的变更以及孙节点的变更都不会触发watcher,而对watcher本身节点以及子节点的变更会触发watcher,具体参照下表。操作方法触发watcherwatcherstatewatchertypewatcherpathCreate当前节点getdata××××getchil
系统 2019-08-12 09:27:07 2159