W Javie, jak w większości języków programowania, istnieje kilka podstawowych typów danych, które pozwalają programiście przechowywać i manipulować różnego rodzaju danymi. Java dzieli typy danych na dwa główne kategorie: typy proste (prymitywne) i typy złożone (obiektowe). Zrozumienie tych typów jest fundamentalne dla efektywnego programowania.
Typy Proste (Prymitywne)
Java definiuje 8 typów prymitywnych, które reprezentują pojedyncze wartości (nie są obiektami) i są przechowywane bardzo efektywnie.
byte
: 8-bitowa wartość całkowita, zakres od -128 do 127.short
: 16-bitowa wartość całkowita, zakres od -32,768 do 32,767.int
: 32-bitowa wartość całkowita, zakres od -2^31 do 2^31-1. Jest to najczęściej używany typ liczbowy.long
: 64-bitowa wartość całkowita, zakres od -2^63 do 2^63-1, używany gdy wartościint
nie są wystarczające.float
: 32-bitowa liczba zmiennoprzecinkowa, używana do precyzyjnych obliczeń na małych zakresach. Liczby typu float mają przyrostek F lub f. Na przykład 3.14F, aby odróżnić je od typu double podczas inicjalizacji zmiennej.double
: 64-bitowa liczba zmiennoprzecinkowa, standardowy wybór dla obliczeń zmiennoprzecinkowych ze względu na precyzję.boolean
: reprezentuje wartości logicznetrue
ifalse
.char
: 16-bitowy typ Unicode reprezentujący pojedynczy znak.
Typy Złożone (Obiektowe)
W przeciwieństwie do typów prymitywnych, typy złożone (obiektowe) reprezentują instancje klas i umożliwiają przechowywanie złożonych danych oraz dostęp do metod umożliwiających operacje na tych danych.
String
: Reprezentuje ciągi znaków. ChociażString
jest technicznie obiektem, jest na tyle powszechnie używany, że często jest traktowany osobno.- Tablice: Pozwalają przechowywać wiele elementów tego samego typu. Mogą być one typów prymitywnych lub obiektowych, np.
int[]
,String[]
. - Klasy i Obiekty: Wszystko w Javie, co nie jest typem prymitywnym, jest obiektem. Obejmuje to instancje klas (np.
File
,InputStream
,Thread
) oraz specjalne typy obiektowe dla typów prymitywnych, np.Integer
,Character
. - Kolekcje: Java oferuje bogaty zestaw klas do pracy z kolekcjami obiektów, takich jak
ArrayList
,HashMap
, które umożliwiają przechowywanie i manipulowanie grupami obiektów.
Przykłady:
int liczba = 100; // Typ prymitywny
String powitanie = "Witaj, świecie!"; // Typ obiektowy
float pi = 3.14f;
int[] liczby = {1, 2, 3, 4, 5}; // Tablica typu prymitywnego
ArrayList<String> listaNazw = new ArrayList<String>(); // Kolekcja typu obiektowego
Zrozumienie różnic między typami prymitywnymi a obiektowymi jest kluczowe w Javie, ponieważ wpływa to na sposób, w jaki wartości są przechowywane, przekazywane i manipulowane w programie. Typy prymitywne są zazwyczaj używane dla prostych wartości i operacji na nich, podczas gdy typy obiektowe oferują większą elastyczność i funkcjonalność kosztem większego zużycia pamięci i wydajności.