W javie są zmienne prymitywne (primitive types) ale string do nich NIE NALEZY. Zauwaz ze inicjalizujac stringa piszesz :
String s = "DupawKwiatach";a inta tak :
int i = 10;
String jest z dużej litery ponieważ jest klasą stąd jej instancje to obiekty.
Primitive types działąją jak w innych językach - gdy chcemy uzyc bardziej zaazansowanych opcji reprezentacji typu prostego używamy klas opakowujących (wrapper classes) naprzykład : Integer, Double, Float itp.
Roznica pomiedzy zmienną typu prymitywnego a referencja wskazujaca na obiekt jest taka ze ta druga jesli nie zostanie zainicjalizowana wskazuje zawsze na null.
stąd Stringa inicjalizować nie trzeba, natomiast zmienne typów prostych wypada (choc w pewnych momentach przyjma one wartosci domyslne chyba ale nei jestem pewien wiec mieszac nie bede :) )