new 和 alloc 的区别
2016-03-20 16:14
162 查看
[className new]基本等同于[[className alloc] init];
区别只在于alloc分配内存的时候使用了zone.
这个zone是个什么东东呢?
它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度;
为什么不推荐使用new?
如果使用new的话,初始化方法被固定死只能调用init.
而你想调用initXXX怎么办?没门儿!
概括来说,new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。
差别在于,采用new的方式只能采用默认的init方法完成初始化,
采用alloc的方式可以用其他定制的初始化方法。
区别只在于alloc分配内存的时候使用了zone.
这个zone是个什么东东呢?
它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度;
为什么不推荐使用new?
如果使用new的话,初始化方法被固定死只能调用init.
而你想调用initXXX怎么办?没门儿!
概括来说,new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。
差别在于,采用new的方式只能采用默认的init方法完成初始化,
采用alloc的方式可以用其他定制的初始化方法。
相关文章推荐
- Android数据存储之sharedpreferences与Content Provider
- 添加自定义的Python模块方法
- java多线程之(Exchanger)
- 小程序分析
- 猎豹MFC--Toolbar工具栏也是一种4位16色位图资源
- N个不同球取出M个的组合个数求解
- 葱油拌面的做法
- 分布式系统几种典型一致性算法简述
- hdu2064 汉诺塔III
- Android杂记(1)
- CentOS7.0真机配置jdk安装Tomcat8
- 适配器模式
- WPF中的MatrixTransform
- 猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单
- 安装完win10后Eclipse好看多了
- 线程控制 - AfxBeginThreadUI线程的封装类
- OpenLayers 3+Geoserver+PostGIS实现点击查询
- 二分查找
- Children's Dining POJ2438 哈密顿图
- 对于JDBC数据库的初始化操作