当大多数其他数据类型出现时,为什么Java没有String的基本类型?
答案 0 :(得分:53)
String是一个对象,它根本不是基本类型,只是一个字符数组。原始类型存在于Java中的原因很有趣,摘自a James Gosling interview:
Bill Venners:为什么有原始的? Java中的类型?为什么不是一切 只是一个对象?
James Gosling:完全有效率 事情。有各种各样的人 谁建立了int和 这都是对象。有一个 各种方法,以及所有 他们有一些相当严重的 问题。其中一些只是很慢, 因为他们为...分配内存 一切。他们中的一些人试图这样做 有时它们的对象 物体,有时它们不是(哪个 是标准的LISP系统所做的,) 然后事情变得非常奇怪。它 有点作品,但很奇怪。
只是让它有原始和物体,它们只是不同。你解决了很多问题。
因此,简而言之,出于效率原因存在原始类型。
答案 1 :(得分:17)
int,char,float,double等都在内存中有固定的长度。例如int有4个字节,因此是32位。
但字符串可以有不同的长度,它实际上是一个char数组。
答案 2 :(得分:6)
大多数编程语言都不考虑字符串原语,因为它实际上是一个字符数组。原始类型几乎总是有固定的大小。
我应该说有些人可能认为String是“原始的”,因为它是内置的。但是,作为一种基本类型而不是复合类型,它并不是原始的。因为字符串是一个字符数组,所以它是一个复合类型。