最近有一位采访者要求定义对象和基元之间的区别。考虑到所有语言都以原语开头,这似乎是一个奇怪的问题。你怎么回答这个问题?
我还应该注意,这次访谈是针对前端开发的,所以他所指的语言(我假设)是JavaScript。
答案 0 :(得分:35)
基元是一种数据类型,它不包含其他数据类型,不能再进一步细分。它就像编程场景中的原子。我说原子是因为原子是物质的基本单位,没有任何东西可以从中得到。
我的意思是,C中的int
无法细分为较小的数据类型。另一方面,物体可以被认为是由多于一种原始类型组成的分子。例如,string
是C ++标准库的一部分;但是,它是一个对象,它由内部较小的数据类型组成,并包含方法。
值得注意的是,并非所有面向对象的语言都是基于类的(例如Javascript)您无法在Javascript中定义类,因此这里的对象完全不同。即使Javascript中的所有内容都是对象(也是Ruby),Number对象实际上是内部基元的包装器。
答案 1 :(得分:10)
从 Java 角度来看:
答案 2 :(得分:0)
我认为原语无法再进行整数,字符串(例如内置数据类型)的划分 。 另一方面,对象可以分为数组,结构之类的小块。
我只是一个学生,这是我的看法。
如果您认为我的答案有误,可以纠正我。
谢谢
答案 3 :(得分:0)
原语
1)基本数据类型使用少量内存来表示单个数据项。所有相同原始类型的数据都具有相同的大小。
例如: 原始类型int使用32位表示整数。所有类型为int的变量都使用32位。
2)Java中只有八种原始数据类型:字节,短型,整型,长型,浮点型,双精度型,字符型和布尔型。 Java程序无法定义任何其他原始数据类型。
对象
对象是一个很大的内存块,它可能包含大量数据以及用于处理该数据的方法(小型程序)。 Java有成千上万种标准的对象类,程序员可以轻松地创建其他类。 (尽管有成千上万的标准课程,但对于本课程,您只需要熟悉十几个课程即可。)