首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象与基本体

对象与基本体
EN

Stack Overflow用户
提问于 2011-12-27 17:54:13
回答 5查看 34.4K关注 0票数 26

最近有一位面试官要求定义对象和原语之间的区别。考虑到所有语言都以原语开头,这似乎是一个奇怪的问题。你会如何回答这个问题?

我还应该注意到,这次面试是针对前端开发职位的,所以(我假设)他所指的语言是JavaScript。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-27 17:56:56

原语是一种数据类型,它不包含任何其他数据类型,并且不能进一步分解。它就像编程场景中的原子。我说原子是因为原子是物质的基本单位,没有任何东西可以从它衍生出来。

我的意思是,C中的int不能被分解成更小的数据类型。另一方面,一个对象可以被认为是一个分子,由一个以上的原始类型组成。例如,string是C++标准库的一部分;但是,它是一个对象,在内部由较小的数据类型组成,并包含方法。

重要的是要注意,并非所有面向对象的语言都是基于类的(例如,Javascript)您不能在Javascript中定义类,因此对象在这里有很大的不同。尽管Javascript中的所有东西都是对象(Ruby也是),但Number对象实际上是内部原语的包装器。

票数 45
EN

Stack Overflow用户

发布于 2011-12-28 05:35:31

从的角度来看:

  1. 基元不包含其他数据类型。
  2. 原语是通过值传递的,也就是传递原语本身的副本。而对于对象,传递的是引用的副本,而不是对象itself.
  3. Primitives是独立的数据类型,即它们不存在层次结构/超类。虽然每个对象都是类的后代,但克隆对象本身有一些默认方法,这些方法是从类对象继承而来的(例如toString()、"Object".
  4. Every ()、wait()、notify()、notifyAll()等)。原语没有任何与themselves.
  5. Primitives相关的方法是不可变的,它们可以像这样使用,而不需要任何特殊的注意。然而对于对象,需要特别注意,它们不是不被default.
  6. With对象改变的,有两种类型的副本,浅的和深的。它们之间有很大的不同。因此,选择取决于我们打算如何使用它们。对于原语,没有这样的区别,默认情况下,所有内容都只是深度复制。
票数 21
EN

Stack Overflow用户

发布于 2019-08-10 01:34:12

我认为primitive不能再像int、string (如内置数据类型)那样进行划分了。另一方面,对象可以分成像数组、结构这样的小块。

我只是一个学生,这是我的观点。

如果你认为我的答案是错的,你可以纠正我。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8643276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档