I Java er der 4 forskellige typer
Objekter
Simple typer (int, boolean, long, char osv.)
Arrays
Null
Strenge er i Java lavet som Objekter, men lige i dette tilfælde er strenge så alment brugte at Java syntaksen sørger for en nem måde at benytte sig af disse. Så disse to linier gør præcis det samme:
String a = "Hej";
String a = new String("Hej);
Nemlig at oprette et String objekt med teksten "Hej" og gemme det i variablen a.
De simple typer bliver IKKE behandlet som objekter, derfor ser du aldrig new blive brugt i forbindelse med int, char, long osv.
(Det skal dog lige nævnes at Java har wrapper klasser til de simple typer, altså klasser som kan få de simple typer til at opføre sig som objekter, det er sjældent at disse bliver brugt, men lister f.eks. kan kune håndtere Objekter, så hvis man vil have en liste med integers er man nødt til at pakke disse ind i en wrapper klasse).
Jeg ved at denne forklaring blev lidt mere teknisk i forholdl til det originale spørgsmål, men jeg håber at det svarede på alles spørgsmål.