Types
Typy proste i złożone, przechowywanie danych w pamięci, konwersja typów oraz POJO w języku JavaTypy proste
char- reprezentuje litery (wielkie i małe), cyfry i inne symbole. Każdy znak to tylko jedna litera ujęta w pojedyncze cudzysłowy. Ten typ ma taki sam rozmiar jakshort(2 bajty = 16 bitów). Zmienne typu char mają wartości odpowiadające dowolnemu znakowi kodowania UTF-16.boolean- reprezentuje wartość typu logicznego. Może przechowywać tylko dwie wartości:trueifalse. Przedstawia tylko jeden bit informacji, ale jego rozmiar nie jest dokładnie określony.byte- rozmiar 8 bitów (1 bajt), zakres od -128 do 127short- rozmiar 16 bitów (2 bajty), zakres od -32 768 do 32 767int- rozmiar 32 bity (4 bajty), zakres od -2 147 483 648 do 2 147 483 647long- rozmiar 64 bity (8 bajtów), zakres od -(2^63) do (2^63)-1 (posiadają przyrostek L, lub l)float- reprezentuje wartości pojedynczej precyzji (32 bity, precyzja do 7 cyfr) (posiadają przyrostek F, lub f)double- reprezentuje wartości podwójnej precyzji (64 bity, precyzja do 16 cyfr) (posiadają przyrostek D, lub d)
Typ prosty a typ złożony
- typ złożony dziedziczy z klasy Object
- każdy typ prosty ma swój odpowiednik w typie złożonym
- do typów złożonych zalicza się
String
Podstawowa różnica polega na tym, że zmienna typu pierwotnego przechowuje rzeczywiste wartości, podczas gdy zmienna typu referencyjnego przechowuje adres w pamięci (odniesienie), w którym znajdują się dane. Dane można przedstawić jako złożoną strukturę, która zawiera inne typy danych jako ich części.
Istnieją dwie główne przestrzenie pamięci: stos i sterta. Wszystkie wartości typów pierwotnych są przechowywane w pamięci stosu, ale zmienne typów referencyjnych przechowują adresy obiektów znajdujących się w pamięci sterty.

Sposób przechowywania danych wpływa również na mechanizm przypisywania wartości zmiennej do innej zmiennej:
- typy pierwotne: wartość jest właśnie kopiowana;
- typy odwołań: adres do wartości jest kopiowany (dane są wspólne dla kilku zmiennych).
Oto fragment kodu, który to demonstruje:
int a = 100;
int b = a; // 100 is copied to b
String language = new String("java");
String java = language;
Zmienna b ma kopię wartości przechowywanej w zmiennej a. Ale zmienne language i java odniesienie do tej samej wartości, zamiast je kopiować. Poniższy rysunek wyraźnie pokazuje
różnicę.

Pamiętaj tylko, że przypisując jedną wartość zmiennej referencyjnej innej, po prostu tworzymy kopię referencji, a nie samą wartość.
Konwersja typów

POJO
Jest to klasa zawierająca pola oraz metody dostępowe (settery oraz gettery). Należy pamiętać, że w obiektach POJO nie umieszczamy logiki biznesowej.
Formatted output
Użycie w metodach System.out.printf() oraz String.format():
%cwstawiachar%swstawiaString%dwstawiaint,short,byte,long%2fwstawiadouble,floatdo 2 miejsc po przecinku%nwstawia nową linię (newline)