ios-关于new和alloc init的区别
2017-07-10 15:51
375 查看
关于new和alloc init的区别其实一开始我也很蒙,甚至不知道这个new在这里起什么作用,但是一查阅了资料后发现,其实二者没有什么太大的区别,概括来说,new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。差别在于,采用new的方式只能采用默认的init方法完成初始化,采用alloc的方式可以用其他定制的初始化方法,alloc使用了Zone 分配的内存会和相关联的对象在内存地址中相靠近,利于内存读取 Zone它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度;NSZone原本是用于维护一块用于对象内存分配及释放的内存池的描述信息,进程默认的NSZone是在启动的时候创建并将随后所有的对象均分配在这里,也因此在做了大量的分配及释放对象内存之后,可能会产生很多的内存碎片,在做新的内存分配的时候NSZone会试图去填补这些碎片,即从碎片中找到合适的内存区块以存放新的对象,这个查找的过程是需要时间开销的,
相关文章推荐
- iOS关于alloc init于new的区别
- ios new和alloc init的区别
- iOS中alloc/init和new的区别
- iOS 中 new 和 alloc init 的区别
- iOS开发:new 与alloc/init 的区别
- iOS 中 new 和 alloc init 的区别
- iOS new和alloc init的区别
- iOS学习之new与alloc init,[NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别
- iOS开发之new与alloc/init的区别
- iOS中new与alloc/init的区别
- iOS开发中 new与alloc/init的区别 及 [NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别
- new 与 alloc/init的区别
- iOS开发new与alloc/init的区别
- iOS开发new与alloc/init的区别
- [转]iOS开发new与alloc/init的区别
- iOS alloc和new的区别与联系
- IOS基础——alloc、init和new方法
- OC初始化中new和alloc init的区别
- new 和 alloc init 的区别 和视图控制器创建到显示到屏幕上的代码执行顺序
- iOS开发new与alloc/init的区别