专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 编程

知识点拾遗

发布时间:2011-07-01 07:29:17 文章来源:www.iduyao.cn 采编人员:星星草
知识点拾遗!
C++:
  • 为什么在模版中不能用虚函数?
            模版是泛型编程,编译器会根据参数进行特化生成对应的函数原型,即在编译期确定模版到底属于哪一种。而虚函数在运行期确定到底调用哪个函数,运行只是知道偏移位置为多少。
  • c++接口是如何工作的?
  • static关键字的应用场景有哪些?
  • 在成员函数中调用”call this“会怎么样?在成员函数调用”delete this“会怎么样?

MFC:

  • 消息与事件的区别?

IOS开发问题:

  • 说明MVC工作原理?
  • 类别是否可以有私有成员?
  • 指令符@作用?
              OC在多个地方使用”@“符号,这是编译器使用的指令符。

  • 内存管理释放机制?retain、copy等之间的区别?property中参数的区别?

      见下一篇博文。

  • alloc和new的区别?
  • autorelease在哪些情况下释放内存?autorelease和release之间的区别?

object release:如果没有其他对象引用它了,直接删除引用,即当object的引用计数为0时,会自动调用[object dealloc]删除对象,那么相应的内存就会释放;

object autorelease:会在将来的某个时候去release object,即系统自动释放对象所占有的内存。

如果设置了自动释放池,即

NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];

那么只要一个对象被标志为自动释放,那么就会被释放到自动释放池中。有两种方法将池中对象的内存释放:

       1.[pool drain];

       2.[pool rlease];//在自动释放池对象本身被释放时,池中的所有对象也会被释放。

相对而言,用release比用autorelease更快一点。这是因为使用autorelease,该对象就呗放入自动释放池,系统自动跟踪每个对象的使用情况,并在释放自动释放池时,释放池中的所有对象。那什么时候释放autorelease中的对象呢?系统不会立即释放autorelease池中对象,而是在一个run loop(运行周期吧!)之后才释放,一半为微秒级。

注意一点的是:autorelease不是系统的垃圾收集(garbage collection,gc)功能。而且ios的oc没有垃圾收集功能。所以不要太依赖于autorelease,而尽量自己管理内存,使用release释放内存,更加有效,而且不会出现内存泄漏。而autorelease池的释放时间不能保证不会出现内存泄漏。

  • cocos 2d的工作原理?

操作系统:

  • 阻塞态实现?


友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: