Typy danych Java
Typy danych Java
Jak wyjaśniono w poprzednim rozdziale, zmienna w Javie musi być określonym typem danych:
Przykład
int myNum = 5; // Integer (whole number)
float myFloatNum = 5.99f; // Floating point number
char myLetter = 'D'; // Character
boolean myBool = true; // Boolean
String myText = "Hello"; // String
Typy danych dzielą się na dwie grupy:
- Pierwotne typy danych — obejmują
byte
,short
,int
,long
,float
,double
,boolean
ichar
- Nieprymitywne typy danych — takie jak String , Arrays i Classes (więcej o nich dowiesz się w następnym rozdziale)
Prymitywne typy danych
Pierwotny typ danych określa rozmiar i typ wartości zmiennych i nie ma żadnych dodatkowych metod.
W Javie istnieje osiem prymitywnych typów danych:
Data Type | Size | Description |
---|---|---|
byte | 1 byte | Stores whole numbers from -128 to 127 |
short | 2 bytes | Stores whole numbers from -32,768 to 32,767 |
int | 4 bytes | Stores whole numbers from -2,147,483,648 to 2,147,483,647 |
long | 8 bytes | Stores whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
float | 4 bytes | Stores fractional numbers. Sufficient for storing 6 to 7 decimal digits |
double | 8 bytes | Stores fractional numbers. Sufficient for storing 15 decimal digits |
boolean | 1 bit | Stores true or false values |
char | 2 bytes | Stores a single character/letter or ASCII values |
Liczby
Pierwotne typy liczb dzielą się na dwie grupy:
Typy całkowite przechowują liczby całkowite, dodatnie lub ujemne (takie jak 123 lub -456), bez miejsc dziesiętnych. Prawidłowe typy to byte
, short
i int
. long
Którego typu należy użyć, zależy od wartości liczbowej.
Typy zmiennoprzecinkowe reprezentują liczby z częścią ułamkową, zawierające jeden lub więcej miejsc po przecinku. Istnieją dwa typy: float
i double
.
Mimo że w Javie istnieje wiele typów numerycznych, najczęściej używane dla liczb są int
(dla liczb całkowitych) i double
(dla liczb zmiennoprzecinkowych). Jednak opiszemy je wszystkie, gdy będziesz czytać dalej.
Typy liczb całkowitych
Bajt
Typ byte
danych może przechowywać liczby całkowite od -128 do 127. Może być używany zamiast int
innych typów liczb całkowitych w celu zaoszczędzenia pamięci, gdy masz pewność, że wartość będzie mieścić się w zakresie od -128 do 127:
Przykład
byte myNum = 100;
System.out.println(myNum);
Niski
Typ short
danych może przechowywać liczby całkowite od -32768 do 32767:
Przykład
short myNum = 5000;
System.out.println(myNum);
Int
Typ int
danych może przechowywać liczby całkowite od -2147483648 do 2147483647. Ogólnie rzecz biorąc, w naszym samouczku int
typ danych jest preferowanym typem danych, gdy tworzymy zmienne z wartością liczbową.
Przykład
int myNum = 100000;
System.out.println(myNum);
Długo
Typ long
danych może przechowywać liczby całkowite od -9223372036854775808 do 9223372036854775807. Jest to używane, gdy int nie jest wystarczająco duże, aby przechowywać wartość. Pamiętaj, że powinieneś zakończyć wartość literą „L”:
Przykład
long myNum = 15000000000L;
System.out.println(myNum);
Typy zmiennoprzecinkowe
Typu zmiennoprzecinkowego należy używać zawsze, gdy potrzebujesz liczby z ułamkiem dziesiętnym, na przykład 9,99 lub 3,14515.
Platforma
Typ float
danych może przechowywać liczby ułamkowe od 3.4e-038 do 3.4e+038. Pamiętaj, że powinieneś zakończyć wartość „f”:
Przykład
float myNum = 5.75f;
System.out.println(myNum);
Podwójnie
Typ double
danych może przechowywać liczby ułamkowe od 1,7e-308 do 1,7e+308. Pamiętaj, że powinieneś zakończyć wartość „d”:
Przykład
double myNum = 19.99d;
System.out.println(myNum);
Użyj float
lub double
?
Dokładność wartości zmiennoprzecinkowej wskazuje, ile cyfr może mieć wartość po przecinku dziesiętnym. Dokładność float
wynosi tylko sześć lub siedem cyfr dziesiętnych, podczas gdy double
zmienne mają precyzję około 15 cyfr. Dlatego bezpieczniej jest używać double
do większości obliczeń.
Liczby naukowe
Liczba zmiennoprzecinkowa może być również liczbą naukową z „e”, aby wskazać potęgę 10:
Przykład
float f1 = 35e3f;
double d1 = 12E4d;
System.out.println(f1);
System.out.println(d1);
Boole'a
Typ danych logicznych jest deklarowany za pomocą boolean
słowa kluczowego i może przyjmować tylko wartości true
lub false
:
Przykład
boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun); // Outputs true
System.out.println(isFishTasty); // Outputs false
Wartości logiczne są najczęściej używane do testowania warunkowego, o którym dowiesz się więcej w następnym rozdziale.
Postacie
Typ char
danych służy do przechowywania
pojedynczego znaku. Znak musi być ujęty w pojedyncze cudzysłowy, np. „A” lub „c”:
Przykład
char myGrade = 'B';
System.out.println(myGrade);
Alternatywnie możesz użyć wartości ASCII do wyświetlenia niektórych znaków:
Przykład
char myVar1 = 65, myVar2 = 66, myVar3 = 67;
System.out.println(myVar1);
System.out.println(myVar2);
System.out.println(myVar3);
Wskazówka: listę wszystkich wartości ASCII można znaleźć w naszym ASCII Table Reference .
Smyczki
Typ String
danych służy do przechowywania sekwencji znaków (tekstu). Wartości ciągu muszą być otoczone podwójnymi cudzysłowami:
Przykład
String greeting = "Hello World";
System.out.println(greeting);
Typ String jest tak często używany i zintegrowany w Javie, że niektórzy nazywają go „specjalnym dziewiątym typem”.
String w Javie jest w rzeczywistości nieprymitywnym typem danych, ponieważ odnosi się do obiektu. Obiekt String ma metody, które służą do wykonywania pewnych operacji na ciągach. Nie martw się, jeśli jeszcze nie rozumiesz terminu „obiekt” . Więcej o ciągach i obiektach dowiemy się w następnym rozdziale.
Nieprymitywne typy danych
Niepierwotne typy danych są nazywane typami referencyjnymi, ponieważ odwołują się do obiektów.
Główna różnica między pierwotnymi i nieprymitywnymi typami danych to:
- Typy pierwotne są predefiniowane (już zdefiniowane) w Javie. Typy nieprymitywne są tworzone przez programistę i nie są definiowane przez Javę (z wyjątkiem
String
). - Typy inne niż pierwotne mogą służyć do wywoływania metod w celu wykonywania pewnych operacji, podczas gdy typy pierwotne nie mogą.
- Typ pierwotny ma zawsze wartość, podczas gdy typy niepierwotne mogą być
null
. - Typ pierwotny zaczyna się od małej litery, podczas gdy typy nieprymitywne zaczynają się od wielkiej litery.
- Rozmiar typu pierwotnego zależy od typu danych, podczas gdy typy inne niż pierwotne mają ten sam rozmiar.
Przykładami typów nieprymitywnych są Strings , Arrays , Classes , Interface , itp. Więcej o nich dowiesz się w następnym rozdziale.