Typy danych w Javie
Java jest językiem o typie statycznym, a także językiem o silnym typowaniu, ponieważ w Javie każdy typ danych (taki jak liczba całkowita, znak, liczba szesnastkowa, liczba dziesiętna upakowany itd.) jest predefiniowany jako część języka programowania, a wszystkie stałe i zmienne zdefiniowane dla dany program musi być opisany jednym z typów danych Java.
Typy danych w Javie
Typy danych w Javie mają różne rozmiary i wartości, które można przechowywać w zmiennej utworzonej zgodnie z wygodą i okolicznościami, aby uwzględnić wszystkie przypadki testowe. Java ma dwie kategorie, według których typy danych są segregowane
- Pierwotny typ danych: takie jak wartość logiczna, char, int, short, byte, long, float i double
- Nieprymitywny typ danych lub obiektowy typ danych: takie jak ciąg, tablica itp.
Pierwotne typy danych w Javie
Dane pierwotne są tylko pojedynczymi wartościami i nie mają żadnych specjalnych możliwości. Istnieje 8 prymitywnych typów danych. Są one przedstawione poniżej w formie tabelarycznej w następujący sposób:
| Typ | Opis | Domyślny | Rozmiar | Przykładowe literały | Zakres wartości |
|---|---|---|---|---|---|
| wartość logiczna | prawda czy fałsz | FAŁSZ | 1 bit | prawda fałsz | prawda fałsz |
| bajt | liczba całkowita z uzupełnieniem do dwójki | 0 | 8 bitów | (nic) | -128 do 127 |
| zwęglać | Znak Unicode | u0000 | 16 bitów | „a”, „u0041”, „101”, „”, „”, „ ”, „b” | znaki reprezentujące wartości ASCII 0 do 255 |
| krótki | liczba całkowita z uzupełnieniem do dwójki | 0 | 16 bitów | (nic) | -32 768 do 32 767 |
| wew | Liczba całkowita z uzupełnieniem do dwójki | 0 | 32 bity | -2, -1,0,1,2 | -2 147 483 648 Do 2 147 483 647 |
| długi | liczba całkowita z uzupełnieniem do dwójki | 0 | 64 bity | -2L, -1L, 0L, 1L, 2L | -9 223 372 036 854 775 808 Do 9 223 372 036 854 775 807 |
| platforma | IEEE 754 zmiennoprzecinkowy | 0,0 | 32 bity | 1.23e100f, -1.23e-100f, .3f, 3.14F | do 7 cyfr dziesiętnych |
| podwójnie | IEEE 754 zmiennoprzecinkowy | 0,0 | 64 bity | 1.23456e300d, -123456e-300d, 1e1d | do 16 cyfr dziesiętnych |
Omówmy i zaimplementujmy każdy z następujących typów danych, które są następujące:
1. Typ danych logicznych
Typ danych Boolean reprezentuje tylko jeden bit informacji albo prawda, albo fałsz który ma reprezentować dwie wartości logiczne logiki i algebry Boole'a, ale rozmiar typu danych boolowskich wynosi zależne od maszyny wirtualnej . Wartości typu boolean nie są konwertowane pośrednio ani jawnie (za pomocą rzutowania) na żaden inny typ. Ale programista może z łatwością napisać kod konwersji.
Składnia:
boolean booleanVar;
Rozmiar: Zależne od maszyny wirtualnej
2. Bajtowy typ danych
Typ danych bajtowych to 8-bitowa liczba całkowita z uzupełnieniem do dwóch ze znakiem. Typ danych bajtowy jest przydatny do oszczędzania pamięci w dużych tablicach.
Składnia:
byte byteVar;
Rozmiar: 1 bajt (8 bitów)
3. Krótki typ danych
Krótki typ danych to 16-bitowa liczba całkowita z uzupełnieniem do dwóch ze znakiem. Podobnie jak w przypadku bajtu, użyj skrótu, aby zaoszczędzić pamięć w dużych tablicach w sytuacjach, gdy oszczędność pamięci faktycznie ma znaczenie.
Składnia:
short shortVar;
Rozmiar: 2 bajty (16 bitów)
4. Typ danych całkowitych
Jest to 32-bitowa liczba całkowita z uzupełnieniem do dwóch ze znakiem.
Składnia:
int intVar;
Rozmiar: 4 bajty (32 bity)
Pamiętać: W Javie SE 8 i nowszych możemy używać typu danych int do reprezentowania 32-bitowej liczby całkowitej bez znaku, która ma wartość z zakresu [0, 2 32 -1]. Użyj klasy Integer, aby użyć typu danych int jako liczby całkowitej bez znaku.
5. Długi typ danych
Zasięg długiego jest dość duży. Długi typ danych to 64-bitowa liczba całkowita z uzupełnieniem do dwóch i jest przydatna w sytuacjach, gdy typ int nie jest wystarczająco duży, aby pomieścić żądaną wartość. Rozmiar długiego typu danych wynosi 8 bajtów (64 bity).
Składnia:
long longVar;
Pamiętać: W Javie SE 8 i nowszych typach danych long można używać do reprezentowania 64-bitowego typu danych bez znaku, którego minimalna wartość wynosi 0, a maksymalna wartość to 2 64 -1. Klasa Long zawiera również metody, takie jak porównywanie Unsigned, dzielenie Unsigned itp., Aby obsługiwać operacje arytmetyczne na długości bez znaku.
6. Typ danych pływających
Typ danych zmiennoprzecinkowych to 32-bitowy typ zmiennoprzecinkowy IEEE 754 o pojedynczej precyzji. Użyj float (zamiast double), jeśli chcesz zaoszczędzić pamięć w dużych tablicach liczb zmiennoprzecinkowych. Rozmiar typu danych float wynosi 4 bajty (32 bity).
Składnia:
float floatVar;
7. Podwójny typ danych
Typ danych double to 64-bitowy typ zmiennoprzecinkowy IEEE 754 o podwójnej precyzji. W przypadku wartości dziesiętnych ten typ danych jest zazwyczaj wyborem domyślnym. Rozmiar podwójnego typu danych wynosi 8 bajtów lub 64 bity.
Składnia:
double doubleVar;
Notatka: Zarówno typy danych float, jak i double zostały zaprojektowane specjalnie do obliczeń naukowych, gdzie dopuszczalne są błędy aproksymacji. Jeśli dokładność jest najważniejsza, zaleca się, aby nie używać tych typów danych i zamiast tego używać klasy BigDecimal.
Zaleca się przejść zaokrąglanie błędów w Javie.
8. Typ danych Char
Typ danych char to pojedynczy 16-bitowy znak Unicode o rozmiarze 2 bajtów (16 bitów).
Składnia:
char charVar;
Dlaczego rozmiar znaku wynosi 2 bajty w Javie?
Tak więc inne języki, takie jak C/C++, używają tylko znaków ASCII, a do reprezentowania wszystkich znaków ASCII wystarczy 8 bitów. Ale Java używa System Unicode, a nie system kodu ASCII i do reprezentowania systemu Unicode 8 bitów nie wystarczy do przedstawienia wszystkich znaków, dlatego Java używa 2 bajtów na znaki. Unikod definiuje w pełni międzynarodowy zestaw znaków, który może reprezentować większość języków pisanych świata. Jest to ujednolicenie kilkudziesięciu zestawów znaków, takich jak łaciński, grecki, cyrylica, katakana, arabski i wiele innych.
Przykład:
Jawa
// Java Program to Demonstrate Char Primitive Data Type> // Class> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // Creating and initializing custom character> > char> a => 'G'> ;> > // Integer data type is generally> > // used for numeric values> > int> i => 89> ;> > // use byte and short> > // if memory is a constraint> > byte> b => 4> ;> > // this will give error as number is> > // larger than byte range> > // byte b1 = 7888888955;> > short> s => 56> ;> > // this will give error as number is> > // larger than short range> > // short s1 = 87878787878;> > // by default fraction value> > // is double in java> > double> d => 4.355453532> ;> > // for float use 'f' as suffix as standard> > float> f => 4> .7333434f;> > // need to hold big range of numbers then we need> > // this data type> > long> l => 12121> ;> > System.out.println(> 'char: '> + a);> > System.out.println(> 'integer: '> + i);> > System.out.println(> 'byte: '> + b);> > System.out.println(> 'short: '> + s);> > System.out.println(> 'float: '> + f);> > System.out.println(> 'double: '> + d);> > System.out.println(> 'long: '> + l);> > }> }> |
Wyjście
char: G integer: 89 byte: 4 short: 56 float: 4.7333436 double: 4.355453532 long: 12121
Nieprymitywny typ danych lub referencyjne typy danych
The Referencyjne typy danych będzie zawierać adres pamięci wartości zmiennych, ponieważ typy referencyjne nie przechowują wartości zmiennych bezpośrednio w pamięci. Są to ciągi znaków, obiekty, tablice itp.
1. Struny
Smyczki są zdefiniowane jako tablica znaków. Różnica między tablicą znaków a ciągiem znaków w Javie polega na tym, że ciąg znaków przeznaczony jest do przechowywania sekwencji znaków w jednej zmiennej, podczas gdy tablica znaków to zbiór oddzielnych jednostek typu char. W przeciwieństwie do C/C++, ciągi znaków Java nie są zakończone znakiem null.
Składnia: Deklarowanie ciągu
= ;
Przykład:
// Declare String without using new operator String s = 'techcodeview.com'; // Declare String using new operator String s1 = new String('techcodeview.com'); 2. Klasa
A klasa to zdefiniowany przez użytkownika projekt lub prototyp, na podstawie którego tworzone są obiekty. Reprezentuje zestaw właściwości lub metod wspólnych dla wszystkich obiektów jednego typu. Ogólnie rzecz biorąc, deklaracje klas mogą zawierać te komponenty w następującej kolejności:
- Modyfikatory : Klasa może być publiczna lub mieć dostęp domyślny. Odnosić się do specyfikatory dostępu dla klas lub interfejsów w Javie
- Nazwa klasy: Imię powinno zaczynać się od pierwszej litery (zgodnie z konwencją pisanej wielką literą).
- Nadklasa (jeśli istnieje): Nazwa rodzica klasy (nadklasy), jeśli istnieje, poprzedzona słowem kluczowym rozciąga się. Klasa może rozszerzać (podklasę) tylko jednego rodzica.
- Interfejsy (jeśli występują): Rozdzielana przecinkami lista interfejsów zaimplementowanych przez klasę, jeśli istnieje, poprzedzona słowem kluczowym implements. Klasa może implementować więcej niż jeden interfejs.
- Ciało: Treść klasy jest otoczona nawiasami klamrowymi { }.
3. Obiekt
Jakiś Obiekt jest podstawową jednostką programowania obiektowego i reprezentuje byty z życia codziennego. Typowy program w Javie tworzy wiele obiektów, które jak wiadomo oddziałują na siebie poprzez wywoływanie metod. Obiekt składa się z:
- Państwo : Jest reprezentowany przez atrybuty obiektu. Odzwierciedla także właściwości obiektu.
- Zachowanie : Jest reprezentowany przez metody obiektu. Odzwierciedla także reakcję obiektu na inne obiekty.
- Tożsamość : Nadaje obiektowi unikalną nazwę i umożliwia interakcję jednego obiektu z innymi obiektami.
4. Interfejs
Podobnie jak klasa, np interfejs może mieć metody i zmienne, ale metody zadeklarowane w interfejsie są domyślnie abstrakcyjne (tylko sygnatura metody, bez treści).
- Interfejsy określają, co klasa musi zrobić, a nie jak. To jest plan zajęć.
- Interfejs dotyczy możliwości takich jak Player może być interfejsem i każda klasa implementująca Player musi być w stanie (lub musi implementować) move(). Określa zatem zestaw metod, które klasa musi zaimplementować.
- Jeśli klasa implementuje interfejs i nie udostępnia treści metod dla wszystkich funkcji określonych w interfejsie, wówczas klasę należy zadeklarować jako abstrakcyjną.
- Przykładem biblioteki Java jest Interfejs komparatora . Jeśli klasa implementuje ten interfejs, można go użyć do sortowania kolekcji.
5. Tablica
Jakiś Szyk to grupa zmiennych o podobnym typie, do których odnosi się wspólna nazwa. Tablice w Javie działają inaczej niż w C/C++. Poniżej przedstawiono kilka ważnych punktów dotyczących tablic Java.
- W Javie wszystkie tablice są przydzielane dynamicznie. (omówione poniżej)
- Ponieważ tablice są obiektami w Javie, ich długość możemy znaleźć na podstawie długości elementu. Różni się to od C/C++, gdzie długość znajdujemy za pomocą rozmiaru.
- Zmienną tablicową Java można również zadeklarować, podobnie jak inne zmienne, za pomocą [] po typie danych.
- Zmienne w tablicy są uporządkowane i każda ma indeks rozpoczynający się od 0.
- Tablicy Java można również używać jako pola statycznego, zmiennej lokalnej lub parametru metody.
- The rozmiar tablicy musi być określona przez wartość int, a nie jako długą lub krótką.
- Bezpośrednią nadklasą typu tablicowego jest Object.
- Każdy typ tablicy implementuje interfejsy Możliwość klonowania I Możliwość serializacji java.io .
Często zadawane pytania dotyczące typów danych w Javie
1. Jakie są typy danych w Javie?
Typy danych mają różne rozmiary i wartości, które można przechowywać w zmiennej utworzonej zgodnie z wygodą i okolicznościami, aby uwzględnić wszystkie przypadki testowe.
2. Jakich 8 typów danych używa się w Javie?
W Javie istnieje 8 głównych prymitywnych typów danych, jak wspomniano poniżej:
- wartość logiczna
- bajt
- zwęglać
- krótki
- wew
- długi
- platforma
- podwójnie
3. Jaki jest typ pierwotny w Javie?
Pierwotne typy danych to typy w języku Java, które mogą przechowywać pojedynczą wartość i nie zapewniają żadnych specjalnych możliwości.
4. Dlaczego znak używa 2 bajtów w Javie i co to jest u0000?
Char używa 2 bajtów w Javie, ponieważ używa systemu Unicode, a nie systemu ASCII. u000 to najniższy zakres systemu Unicode.
Wymeldować się: Quiz na temat typów danych w Javie