在object-c基础教程这本书里老是可以看见类似下面这种代码,我这小菜鸟就纳闷了,啥区别啊,看上去都一样么。网上找了找,找到一些说法,这里先摘出来。
    className* object = [className new];
or
    className* object = [[className alloc] init];
背景说明,new是较为老式的写法,后来发现只有一个new不好使,才引入了alloc和init这种写法,保留new一是向后兼容,二是很多时候是一种更简单的写法。其实是一样的,new在内部调用的alloc和init.

源代码:

[className new]基本等同于[[className alloc] init]. 区别只在于alloc分配内存的时候使用了zone,这个zone是个什么东东呢?它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度.
什么要把alloc 和init 分开?
1. 可以使用多种init方法
2. 显示调用总比隐式调用要好”
如果确实不需要用其他的init函数,比如initWithString, 只是使用 [Nsobject alloc] init] ,那用new的方法更加方便

 * new doesn't support custom initializers (like initWithString)

* alloc-init is more explicit than new

===========================================

object c中 new和alloc区别相关推荐

  1. Object类中常见的方法

    一.Object类中的toString()方法 1. object 默认方法 toString方法,toString() 输出一个对象的地址字符串(哈希code码)! 2.可以通过重写toString ...

  2. Java中Object.equals与String.equals的区别

    基础知识 Java的存储空间:寄存器.栈.堆.静态存储区.常量存储区(常量池).其他存储位置. 此处重点介绍堆和常量存储区: 堆:存储new的对象; 常量池:用来存储final static.Stri ...

  3. 【Java之多线程(二)】(***重要***)Java多线程中常见方法的区别,如object.wait()和Thread.sleep()的区别等

    1.Java中Thread和Runnable的区别??? 区别: 在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下好处: 避免点 ...

  4. JAVA 中equals()与==的区别

    原文地址:http://www.chineselinuxuniversity.net/articles/29594.shtml 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存 ...

  5. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  6. java中==和equals的区别

    package com.atguigu.java1;import java.sql.Date;/** * equals()和==的区别* *一.回顾==的使用*==:运算符* 1.可以使用在基本数据类 ...

  7. 面试必问一:Java 中 == 和 equals 的区别你知道吗

    面试必问一:Java 中 == 和 equals 的区别你知道吗 前言 关于这个问题,一般初中级面试中都会遇到,还记得我当初实习找工作的时候也遇到了这个问题,现在都还记得自己是怎么回答的:== 是基本 ...

  8. C#中equal与==的区别

    C#中equal与==的区别 来源 https://www.cnblogs.com/dearbeans/p/5351695.html C#中,判断相等有两种方式,一种是传统的==操作,一种是objec ...

  9. wait/notify/notifyAll在Object类中

    wait/notify/notifyAll在Object类中 因为我们在使用synchronized锁 对象锁可以是任意对象,所以wait/notify/notifyAll需要放在Object类中. ...

  10. property field java_Java 中 field 和 variable 区别及相关术语解释

    原标题:Java 中 field 和 variable 区别及相关术语解释 先说一下 field 和 variable 之间的区别: class variables and instance vari ...

最新文章

  1. 关于 Delphi 中流的使用(10): 压缩与解压缩进度 - 回复 ilst 的问题
  2. 卖一头猪亏500元,“猪茅”也扛不住了?
  3. tomcat安装apr报错解决
  4. 在 Perl 中利用 DOM 和 XPath 对 XML 进行有效处理
  5. 卡方分箱(chi-square)1
  6. HDMI中的视频时序分析
  7. 扫盲贴2.5寸移动硬盘的厚度有几种
  8. Windows 远程桌面复制问题
  9. IEEE 754 浮点数的详细分析
  10. linux查看tomcat在,在陌生Linux环境查看Tomcat服务的方法
  11. Resources资源
  12. MPU6050/6500/9250中断读取原始数据(基于STM32F103)
  13. 构造函数c语言引用,c – 定义的构造函数的“未定义引用”
  14. 【愚公系列】2021年12月 Redis数据库-主从的搭建
  15. python3各版本区别-Python各版本之间的区别
  16. U8G2库移植到STM32平台上
  17. c语言编程 黑色星期五,求黑色星期五问题~
  18. Apache Commons 总纲
  19. [GO项目]开源免费在线客服系统-真正免费开源-GOFLY0.3.5发布-极简强大Go语言开发WEB网页客服...
  20. 短时傅里叶变换(1)

热门文章

  1. 一个故事讲完CPU的工作原理 侵删
  2. Tensorflow学习笔记 (用 tf.data 加载图片)
  3. ArcPy常用基础功能
  4. Java开发实习生面试—附简历以及面试题
  5. UG NX8.0安装教程
  6. 海康视频展示(web前端)
  7. 如何使用ModSim32模拟ModbusRTU数据?
  8. linux sqluldr2命令,sqluldr2 linux64
  9. 《Redis开发与运维》读书笔记一
  10. FLUENT 汽车流场仿真分析-结构网格划分视频教程