现在位置: 首页 > xmh2006发表的所有文章
  • 03月
  • 21日
综合 ⁄ 共 3285字 评论关闭
extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。   (1) 被extern "C"限定的函数或变量是extern类型的;   extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句:   extern int a;   仅仅是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现连接......
阅读全文
  • 05月
  • 20日
综合 ⁄ 共 376字 评论关闭
       如果一个bean是prototype的,并且这个bean要被注入到其它bean或者你通过getBean这样的方式获得这个bean的时候,spring容器会创建一个新的实例给你。 singleton模式指的是对某个对象的完全共享,包括代码空间和数据空间,也就是说,singleton会让所有线程共享他的成员变量。prototype则不会这样。 此外singleton的生命周期由容器来管理,但是prototype的生命周期得你自己管理。 最后,有个小trick,singleton的bean引用一个prototype的bean时会出现问题,因为singleton只初始化一次,但prototype每请求一次都会有一个新的对......
阅读全文
  • 05月
  • 15日
综合 ⁄ 共 385字 评论关闭
搞开发,玩程序,IDE还是比较重要的。虽然说有一些终极的东西:VIM、Emacs等但是学习起来有些费劲,不符合我们的要求,我们毕竟不是发烧友,时间有限。所以,一个IDE对我们来说是比较重要的。IDE分为两类,轻量的和重量的。大体上我觉得所有基于java的都比较重,比如eclipse,netbeans等。轻量级的也很多,codelite、codeblocks、当然还哟跟轻量的。一般来讲越重的功能越强,当然也越吃内存。如果你比较懒,而且机子内存足够,cup不是太差的话,玩重量级的会比较方便。特别是,如果你搞企业开发(不是自己玩),建议使用重量级IDE......
阅读全文
  • 04月
  • 23日
综合 ⁄ 共 1183字 评论关闭
一、进程间通信的几种技术 管道(半双工)、FIFOs(命名管道) 流管道(全双工)、命名流管道 消息队列、信号量、共享存储 套接口、流     --可支持不同主机上的各个进程间IPC   二、共享存储 1、共享存储允许两个或多个进程共享一给定的存储区。 2、因为数据不需要在客户机和服务器之间复制,所以这是最快的一种IPC。 3、使用共享存储的唯一窍门是多个进程之间对一给定存储区的同步存取,通常,信号量被用来实现对共享存储存取的同步。 4、内核为每个共享存储段设置了一个shmid_ds结构。 5、shmget函数,获得一个共享存......
阅读全文
  • 04月
  • 22日
综合 ⁄ 共 2129字 评论关闭
ManagedObjectsModal 通常可以使用Xcode的建模工具来创建模型(请参考"Create a managed object with Xcode")。你也可以全部使用代码来创建(请参考"Core Data Utility Tutorial")。 编译数据模型     数据模型是一种部署资源。 在模型中,除了有实体和属性的详细信息外,用Xcode创建的模型还包含了一些额外的视图信息,包括布局、颜色等等。这些信息在运行时不是必须的。模型文件在编译的过程中会删除这些额外信息以保证尽可能高效的加载。xcdatamodel“源”文件会被momc编译器编译为mom的目标文件。     "mom" 位于 /Librar......
阅读全文
  • 04月
  • 20日
综合 ⁄ 共 2854字 评论关闭
一、什么是”异步非阻塞式”? 这个名字听起来很恶心难懂,但如果以 买内裤 这件事情来比喻执行程序的话就很容易理解“异步非阻塞式”的涵义了。 例如你是一个CPU的线程,你需要去执行一段 买内裤的程序, 你所需执行的步骤大致如下, 到一个商店里问老板, 你们店里还有没有nb牌内裤? 买到内裤,穿上 去小卖店买点火腿回家喂狗 这时候,你作为一个线程,你可能会遇到几种状况或选择。 店里面没货了,老板一直不答应你(阻塞你),你也一直等着(同步),第三天有货了才告诉你有了,你赶紧拿到穿上,再去买火腿 – [同步阻塞模式] 老板......
阅读全文
  • 04月
  • 06日
综合 ⁄ 共 219字 评论关闭
一个客户说,他想通过load一个winform的exe来检查其中控件的属性值,比如tag,text等等。貌似合理,可他就是拿不到正确的属性。 实际上,如果你不构造一个这个form的实例,不可能拿到这些属性。你在winform designer中输入的值都被vs用codedom的方法在form的InitializeComponent中生成比如a.text = ""此类的语句,也就是说你只能在构造这个类之后,才能通过对实例反射的方法得到这些属性。
阅读全文
  • 03月
  • 30日
综合 ⁄ 共 782字 评论关闭
template <class Window, class Controller> class Widget { .... }; // 特化 // 其中 ModalDialog 和 MyController 是另外定义的 class template<> class Widget<ModalDialog, MyController> // 编译器只看这里是否符合指定的类型 { .... }; // 偏特化 // 其中 Window 是泛化类型参数,MyController 是具体类型 tempalte <class Window> class Widget<Window, MyController> // 同理,编译器只看这里是否符合指定的类型 { .... }; // 还可以这样 template <......
阅读全文
  • 02月
  • 09日
综合 ⁄ 共 990字 评论关闭
      关于线程的实现细节,我们这里只讨论两个问题。即线程的内核对象和线程栈以及线程的创建过程。上一章我们提到,线程是由线程内核对象以及线程栈两个部分组成的。系统通过线程的内核对象管理线程。线程栈则维护参数和局部变量。 1. 线程的内核对象和线程栈          下表很清楚的表明了内核对象和线程栈的内容以及直接的管理。 调用了CreateThread之后,系统会创建线程的内核对象。内核对象包括一个上下文(用于恢复现场)。从上图可以看出。SP指向了线程栈的首 地址。IP指向了系统提供的一个函数。引用计数是表示当前......
阅读全文
  • 01月
  • 29日
综合 ⁄ 共 640字 评论关闭
1.防火墙端口设置 从控制面板打开防火墙 ----->高级设置-------------->入站规则------------>新建规则-------------> 端口 next、next添加您需要的端口如8094 2.crossdomain.xml问题 直接放在tomcat的webapps的root下面,启动tomcat后运行http://localhost:8080/crossdomain.xml可以直接访问 crossdomain.xml内容 <?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy><allow-access-from do......
阅读全文
  • 01月
  • 28日
综合 ⁄ 共 790字 评论关闭
 一般情况下TextArea区输入的文字数量是没有限制的,但是我们可以通过javascript限制表单的文字字数。  如下javascript代码加入html的<head>...</head>之间:   以下是引用片段:<SCRIPT LANGUAGE="JavaScript">  <!--//  function textCounter(field, countfield, maxlimit) {  // 定义函数,传入3个参数,分别为表单区的名字,表单域元素名,字符限制;  if (field.value.length > maxlimit)  //如果元素区字符数大于最大字符数,按照最大字符数截断;  field.value = field.value.substring(0, max......
阅读全文
  • 01月
  • 13日
综合 ⁄ 共 495字 评论关闭
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,m,t,l[1001][10001]; bool vis[1001],cir[1001]; void dfs(int x){ if(cir[t])return; vis[x]=1; if(x==t){ cir[x]=true; return; } for(int i=1;i<=l[x][0];i++) if(!vis[l[x][i]])dfs(l[x][i]); } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ int a,b; scanf("%d%d",&a,&b); l[a][++l[a][0]]=b; } for(t=1;t<=n;t++){ memset(vis,0,sizeof(vis)); for(in......
阅读全文