2013年10月25日
摘要:
1、WPF的核心是数据绑定。2、考虑这样一个场景:界面上有一个TextBox显示Person的年龄,一个Button,点击一次Button,年龄加1。3、做一个View,上面有TextBox和Button,TextBox的Text绑定ViewModel中Person的年龄,Button的Command绑定ViewModel中的命令。4、设置View的DataContext为ViewModel5、ViewModel关联Person和Command对象,这里的Person就是Model。ViewModel对View暴露两个接口:Person的Age和Command。6、Command封装Perso
阅读全文
posted @ 2013-10-25 18:55
Andy Niu
阅读(328)
推荐(0)
2013年10月24日
摘要:
1、任何技术都是针对特定场景设计的,也就是说,为了解决某个问题而设计的。2、考虑下面一种场景:一个小旅馆,只有一个卫生间,有清洁人员,店主人,和旅客。卫生间用完之后,就会自动锁闭,必须取钥匙,才能进入卫生间。3、在上面的场景中,卫生间是共享资源,清洁人员和旅客使用卫生间的过程,就是两个线程,钥匙是互斥体。4、假定卫生间只有一个坑,一次只能一个人使用,因此就只有一个钥匙。谁要使用卫生间,必须拿到钥匙。别人拿到钥匙,自己必须等待,拿钥匙就是,程序中lock互斥体。5、通过钥匙保证了,卫生间一次只能一个人使用。这样的好处是:通过一个小钥匙,控制了一大块资源的使用。6、钥匙保证了,不同人之间不能同时使
阅读全文
posted @ 2013-10-24 19:41
Andy Niu
阅读(1626)
推荐(1)
摘要:
1、数据结构分为逻辑结构和物理结构。2、逻辑结构:元素之间的关系,分为: a、集合结构:在同一个集合中,元素之间没关系。 b、线性结构:元素一对一的关系 c、树形结构:元素一对多的关系 d、图形结构:元素多对多的关系3、物理结构:元素的存放形式 a、顺序存放:元素存放在连续的存储单元里 b、链式存放:元素存放在任意的存储单元里,通过指针,知道与自己关联的元素。
阅读全文
posted @ 2013-10-24 18:58
Andy Niu
阅读(273)
推荐(0)
摘要:
1、哈希表解决什么问题? 假设有一组记录,每条记录都是学生名,成绩的键值对,在一般的线性表中,每条记录的存放是没有规律的。如果要找Andy的成绩,因为不知道Andy这条记录的存放位置,必须遍历集合,逐个比较,找到Andy这条记录,取出成绩。时间复杂度为O(N),效率很低。哈希表就是解决这个问题的。2、如何解决的? 上面问题的关键是,根据学生名不能确定存放位置,哈希表是这样做的:设计一个映射函数,把学生名映射到存放的地址。这样就行了,给我一个学生名,我只要根据映射函数计算一下,就知道了存放位置,直接去那个地方去数据,时间复杂度为O(1)。同样当插入记录的时候,根据映射函数计算一下,这条记录应..
阅读全文
posted @ 2013-10-24 18:46
Andy Niu
阅读(454)
推荐(0)
2013年10月23日
摘要:
1、output迭代器:一次一步,只能向前,流水线上放着一批空的盒子,每次向前移动一个,往盒子里面塞一个东西。2、input迭代器:一次一步,只能向前,流水线上放着一批零件,每次向前移动一个,可以看这个零件,但是不能加工。3、forward迭代器:继承input迭代器,可以加工零件。4、bidirectional迭代器:继承forward迭代器,可以向后移。5、random access迭代器:继承bidirectional迭代器,可以一次移动多个位置。
阅读全文
posted @ 2013-10-23 19:58
Andy Niu
阅读(684)
推荐(0)
摘要:
1、OSI(Open System InterConnection),开放式系统互联,分为7层,TCP/IP分为4层:数据链路层,网络层,传输层,应用层。2、网络链路层的地址是MAC地址,网络层的地址是IP地址,传输层的地址是Port3、每一层上都有啥? 网络层:IP,ARP,ICMP 传输层:TCP,UDP 应用层:HTTP,FTP,SMTP,DNS4、ARP(Address Resolution Protocol):将目标IP地址转化为MAC地址5、ICMP(Internet Control Message Protocol):确认网络是否正常。ping和tracert都是由ICMP...
阅读全文
posted @ 2013-10-23 19:43
Andy Niu
阅读(371)
推荐(0)
2013年10月22日
摘要:
1、过载:一个类中,方法名相同,形参表不同的方法。2、重写:子类与父类的virtual方法,方法名,形参表相同。3、考虑下面的情况,子类与父类方法名相同。 父类是virtual方法 形参表相同 ---> 构成重写 父类是virtual方法 形参表不同 ---> 隐藏父类方法 父类不是virtual方法 形参表相同 --->隐藏父类方法 父类不是virtual方法 形参表不同 --->隐藏父类方法4、只有在父类是virtual方法,且方法名,形参表相同,才构成重写。其他的情况都不构成重写,也不构成过载,子类同名不能过载父类的方法,只会隐藏父类的方法。5、只有在父类是vir
阅读全文
posted @ 2013-10-22 20:13
Andy Niu
阅读(2127)
推荐(0)
摘要:
1、虚函数实现了运行时多态,他是如何实现的呢?2、含有虚函数的对象,内部有一个vptr(virtual table pointer),指向虚函数表的指针。3、含有虚函数的类有一个vtbl(virtual table),是一个数组,内部包含的是一组函数指针。4、每个对象都有一个自己的vptr,类的所有对象共享vtbl5、vtbl包含一组函数指针,这些函数指针指向虚函数,虚函数包括: a、对于父类的虚函数,如果没有重写,包含父类的虚函数; b、对于父类的虚函数,如果重写了,包含自身重写后的函数; c、自身中,新创建的虚函数。6、另外,运行时是如何获取对象的类型的? 在类的虚方法表中还有一个...
阅读全文
posted @ 2013-10-22 19:22
Andy Niu
阅读(366)
推荐(0)
摘要:
1、对象分为字段和方法,字段分为:static,non-static。方法分为static,non-static,virtual2、static字段,放在静态存储区,所有的对象共享。non-static字段,每个对象拥有自己的一份内存copy3、static方法,non-static方法,virtual方法都放在代码区,所有的对象共享。调用方法的时候,如何区分方法内的数据是那个对象的呢? 方法内的数据是方法绑定对象的数据,因为调用方法的时候,需要指定对象。对于virtual方法,还要增加一个额外指针,用于在运行时,根据对象的真实类型绑定方法。注意:就算有多个virtual方法,也只有一个额外.
阅读全文
posted @ 2013-10-22 19:05
Andy Niu
阅读(267)
推荐(0)
摘要:
1、操作系统对硬件封装,对外暴露API,编程语言对操作系统封装,对外暴露API,程序员利用编程语言的API进行编程。2、硬盘利用磁性保存数据,内存是晶体管,用电流的有无状态表示数据。因此断电后,硬盘的数据还在,内存的数据消失了。3、访问硬盘使用磁头读写数据,访问内存使用数据总线。4、每个进程都会占用一定的内存,对于32位操作系统,进程占用的内存必须小于 4G-操作系统常驻内存。5、系统中的进程很多,每个都占用一定的内存,会导致内存不够用,就会出现roll-out,roll-in。内存不够用的情况下,去执行一个进程,先把其他暂时不用的进程内存roll-out,然后把该进程的内存roll-in。在
阅读全文
posted @ 2013-10-22 18:47
Andy Niu
阅读(266)
推荐(0)