为什么String没有原始类型?

时间:2010-01-20 05:36:16

标签: java string primitive-types

当大多数其他数据类型出现时,为什么Java没有String的基本类型?

3 个答案:

答案 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是“原始的”,因为它是内置的。但是,作为一种基本类型而不是复合类型,它并不是原始的。因为字符串是一个字符数组,所以它是一个复合类型。

相关问题