Porque a string não é definida como um tipo primitivo em Java

MEU PROFESSOR FEZ ESSA PERGUNTA EM SALA E NINGUEM SOUBE RESPONDER: Se o tipo de dado String foi utilizada como “texto” em sala de aula para a Linguagem Java, por que ele não consta como um tipo primitivo?

Por que a String nada mais é do que um array de caracteres. char, por sua vez, é um tipo primitivo.

Complementando: é definido como “primitivo” todo tipo de dado que não é derivado da classe Object. String é derivado, então não é possível ser um dado primitivo.

Complementando o que o @FearX disse…
Todo array, em java, é um objeto (arcaico, mas é um objeto).
Veja, como você declara um array?

int[] nums = new int[10];

A existência da palavra reservada new indica que trata-se de um objeto. Ou você já viu algo como:

int x = new...

???

Não e nunca verá.
E por que todo array é um objeto?
Simples, é necessário que o java consiga controlar os aspectos mais fundamentais desses caras (tamanho, por exemplo).
As strings são tipos especiais de arrays e, por isso, possuem características diferentes dos arrays de primitivos.

1 curtida