Why is there no primitive type for String? [duplicate]

String is an object, it isn’t a primitive type at all, just an array of chars. The reason why primitive types exist in Java at all is an interesting one, excerpt from a James Gosling interview:

Bill Venners: Why are there primitive
types in Java? Why wasn’t everything
just an object?

James Gosling: Totally an efficiency
thing. There are all kinds of people
who have built systems where ints and
that are all objects. There are a
variety of ways to do that, and all of
them have some pretty serious
problems. Some of them are just slow,
because they allocate memory for
everything. Some of them try to do
objects where sometimes they are
objects, sometimes they are not (which
is what the standard LISP system did),
and then things get really weird. It
kind of works, but it’s strange.

Just making it such that there are primitive and objects, and they’re just different. You solve a whole lot of problems.

So in short the primitive types exist for efficiency reasons.

Leave a Comment