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, booleanichar
  • 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, shorti int . longKtó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: floati 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 bytedanych może przechowywać liczby całkowite od -128 do 127. Może być używany zamiast intinnych 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 shortdanych może przechowywać liczby całkowite od -32768 do 32767:

Przykład

short myNum = 5000;
System.out.println(myNum);

Int

Typ intdanych może przechowywać liczby całkowite od -2147483648 do 2147483647. Ogólnie rzecz biorąc, w naszym samouczku inttyp danych jest preferowanym typem danych, gdy tworzymy zmienne z wartością liczbową.

Przykład

int myNum = 100000;
System.out.println(myNum);

Długo

Typ longdanych 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 floatdanych 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 doubledanych 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 floatlub double?

Dokładność wartości zmiennoprzecinkowej wskazuje, ile cyfr może mieć wartość po przecinku dziesiętnym. Dokładność floatwynosi tylko sześć lub siedem cyfr dziesiętnych, podczas gdy doublezmienne mają precyzję około 15 cyfr. Dlatego bezpieczniej jest używać doubledo 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ą booleansłowa kluczowego i może przyjmować tylko wartości truelub 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 chardanych 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 Stringdanych 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.


Sprawdź się za pomocą ćwiczeń

Ćwiczenie:

Dodaj poprawny typ danych dla następujących zmiennych:

 myNum = 9;
 myFloatNum = 8.99f;
 myLetter = 'A';
 myBool = false;
 myText = "Hello World";