Java siūlo aštuonis pri­mi­ty­vius duomenų tipus ir daugybę sudėtingų duomenų tipų. Jie nulemia, kokios reikšmės gali būti saugomos ir rodomos kin­ta­ma­ja­me. Tam tikri duomenų tipai yra pri­ski­ria­mi visiems kin­ta­mie­siems Java kalboje.

Kokie duomenų tipai yra Java?

Kiek­vie­no­je prog­ra­ma­vi­mo kalboje yra įvairių duomenų tipų, kurie apima konk­re­čius objektus ir api­brėž­tas ope­ra­ci­jas. Nors skirtingų kalbų siūlomi duomenų tipų variantai dažnai yra panašūs, kartais yra ir reikš­min­gų skirtumų. Pa­vyz­džiui, palyginus Python ir Java kalbas bei jų duomenų tipus, galima pastebėti panašumų, bet taip pat ir daug skirtumų, dėl kurių šios kalbos tinka skir­tin­giems už­da­vi­niams atlikti.

Java naudoja dviejų skirtingų tipų duomenų tipus: pri­mi­ty­vius ir su­dė­ti­nius. Su­dė­ti­niai duomenų tipai taip pat vadinami nuorodų tipais. Pri­mi­ty­vūs ir su­dė­ti­niai duomenų tipai skiriasi savo dydžiu ir nulemia, kokios reikšmės gali būti saugomos kin­ta­ma­ja­me. Pri­mi­ty­vūs duomenų tipai gali saugoti tik paprastas reikšmes, o nuorodų tipai naudojami su­dė­tin­ges­nėms struk­tū­roms kurti, dideliems duomenų kiekiams tvarkyti ir ma­ni­pu­liuo­ti.

Jei norite išmokti prog­ra­muo­ti, svarbu ne tik žinoti skir­tin­gus duomenų tipus, bet ir tai, kaip iš kiekvieno iš jų išgauti mak­si­ma­lią naudą. Norint suprasti, kaip ge­riau­siai naudoti duomenų tipus, reikia ne tik suprasti jų funk­cio­na­lu­mą, bet ir tai, kiek atminties jie naudoja (arba taupo).

Kas yra pri­mi­ty­vūs duomenų tipai Java kalboje?

Java kalboje yra iš viso aštuoni skirtingi pri­mi­ty­vūs duomenų tipai, kurie turi griežtai api­brėž­tus verčių in­ter­va­lus. Juos galima su­skirs­ty­ti į keturias ka­te­go­ri­jas: loginiai duomenų tipai, in­te­g­ra­li­niai duomenų tipai, slankiojo kablelio duomenų tipai ir simbolių duomenų tipai. Jie neturi jokių papildomų specialių savybių ir dar vadinami ele­men­ta­riais duomenų tipais. Kiek­vie­nas duomenų tipas turi fiksuotą bitų skaičių. Toliau išsamiau aptarsime pri­mi­ty­vius duomenų tipus. Java naudoja šiuos pri­mi­ty­vius tipus:

  • būlio
  • baitas
  • trumpasis
  • int arba sveikasis skaičius
  • ilgas
  • plū­du­riuo­jan­tis
  • dvigubas
  • char

boolean

Java boolinis duomenų tipas nėra skait­me­ni­nis tipas. Jis siūlo tik dvi galimas reikšmes: true ir false. Jis gali būti nau­do­ja­mas norint nustatyti, ar sąlyga taikoma (true) ar ne (false). Tai loginis duomenų tipas, kurio nu­ma­ty­to­ji reikšmė yra false. Jis sudarytas iš 1 bito ir turi tokią sintaksę:

boolean booleanVar;
java

byte

byte yra in­te­g­ra­lus duomenų tipas, pa­tei­kia­mas kaip dviejų pa­pil­di­nių vertė, kurios dydis yra 8 bitai arba 1 baitas. Jis paprastai nau­do­ja­mas siekiant sutaupyti atminties didesnėse masyvuose. Jo verčių dia­pa­zo­nas yra nuo -128 iki 127, o nu­ma­ty­to­ji vertė yra 0. Štai jo sintaksė:

byte byteVar;
java

short

short taip pat yra vienas iš in­te­g­ra­li­nių duomenų tipų Java kalboje ir daž­niau­siai nau­do­ja­mas atminties taupymui di­des­niuo­se masyvuose. Dviejų papildų vertė yra 16 bitų arba 2 baitų dydžio, o jos vertės dia­pa­zo­nas yra nuo -32768 iki 32767 imtinai. Pagal nu­ma­ty­tuo­sius nu­sta­ty­mus jos vertė yra 0. Štai kaip nau­do­ja­mas short:

short shortVar
java

int arba sveikasis skaičius

int arba sveikasis skaičius taip pat yra dviejų pa­pil­di­nių vertė ir in­te­g­ra­lus duomenų tipas, kurio dydis yra 4 baitai arba 32 bitai. Jo vertės dia­pa­zo­nas apima sveikųjų skaičių nuo -2147483648 iki 2147483647, o jo nu­ma­ty­to­ji vertė yra 0. Jo sintaksė yra tokia:

int intVar
java

long

Di­džiau­sias in­te­g­ra­lus duomenų tipas yra long. Tai pir­miau­sia taikoma jo verčių dia­pa­zo­nui, kuris yra nuo -9223372036854775808 iki 9223372036854775807, ir antra, jo dydžiui, kuris yra 8 baitai arba 64 bitai. Todėl dviejų pa­pil­di­nių vertė naudojama, jei kiti in­te­g­ra­lūs duomenų tipai yra ne­pa­kan­ka­mi. Tačiau ji taip pat rei­ka­lau­ja dau­giau­sia atminties. Jos nu­ma­ty­to­ji vertė yra 0. Štai jos sintaksė:

lomg longVar
java

float

float yra plau­kio­jan­čio­jo kablelio duomenų tipas, nau­do­ja­mas realių skaičių sau­go­ji­mui. Jo dydis yra 32 bitai ir jis atitinka IEEE 754 standartą, kuris apibrėžia stan­dar­ti­nį dve­je­tai­nių ir de­šim­tai­nių plau­kio­jan­čio­jo kablelio skaičių at­vaiz­da­vi­mą kom­piu­te­riuo­se. Stan­dar­ti­nė float vertė yra 0,0, o jo vertės diapazone gali būti at­vaiz­duo­ja­mi iki septynių de­šim­tai­nių skaičių. Tačiau, palyginti su double, float nėra toks tikslus, todėl neturėtų būti nau­do­ja­mas vertėms, kurioms tikslumas yra labai svarbus. Tačiau, jei tai nėra būtina, galite naudoti float, kad su­tau­py­tu­mė­te vietos. float sintaksė yra tokia:

float floatVar;
java

double

double yra maždaug dvigubai tik­s­les­nis už float ir atlieka panašią funkciją. Jo dydis yra 64 bitai ir jis gali at­vaiz­duo­ti iki 16 de­šim­tai­nių skaitmenų. Jo nu­ma­ty­to­ji vertė taip pat yra 0,0. Jei jums rei­ka­lin­gos tik­s­les­nės vertės, visada tu­rė­tu­mė­te naudoti double, nors šis duomenų tipas taip pat nėra labai tikslus. Jei norite dirbti su visiškai tiks­lio­mis reikš­mė­mis, tu­rė­tu­mė­te naudoti Big­De­ci­mal klasę. double sintaksė yra tokia:

double doubleVar;
java

char

char yra simbolių duomenų tipas. Jis saugo simbolius, pagrįstus Unicode simbolių rinkiniu, todėl yra pri­tai­ko­mas daugeliui skirtingų platformų. Kiek­vie­nam simboliui reikia 2 baitų atminties. Jo vertės dia­pa­zo­nas atitinka ASCII (Amerikos stan­dar­ti­nis in­for­ma­ci­jos mainų kodas) ir yra tarp „\u0000“ (t. y. 0) ir „\uffff“ (atitinka 65535). Char nu­ma­ty­to­ji vertė yra „\u0000“, o jo sintaksė atrodo taip:

char charVar
java

Kas yra sudėtingi duomenų tipai Java kalboje?

Antrasis duomenų tipų tipas Java kalboje yra nuorodų tipai, dar vadinami su­dė­ti­niais duomenų tipais. Jie vadinami nuorodų tipais, nes jie nurodo objektus. Prie­šin­gai nei pri­mi­ty­vie­ji duomenų tipai, jie paprastai nėra iš anksto apibrėžti, bet nustatomi prog­ra­muo­to­jo (išimtis – eilutė). Jie gali naudoti metodus ir taip pat gali turėti vertę 0 (tuščios reikšmės prasme). Pri­mi­ty­vie­ji duomenų tipai prasideda mažąja raide, o nuorodų tipai – didžiąja raide. Čia ap­žvelg­si­me svar­biau­sius nuorodų tipus.

Stygos

String yra klasė, kuri gali būti naudojama simbolių sekos at­vaiz­da­vi­mui, at­ski­riant šį sudėtingą duomenų tipą nuo pri­mi­ty­vaus duomenų tipo char bei kitų duomenų tipų. Stygos eg­zis­tuo­ja kaip objektai java.lang klasėje. Įvairūs String klasės metodai leidžia jums tikrinti atskirus simbolius stygose, lyginti stygas tar­pu­sa­vy­je, ieškoti stygų ir kopijuoti stygas. Stygos yra iden­ti­fi­kuo­ja­mos kabutėmis. Šio nuorodų tipo sintaksė atrodo taip:

<string_type> <string_variable> = "<string_sequence>";
java

Štai pavyzdys, kaip veikia stygos:

// How to create a string without a new operator
String a = "This is your new string";
/ / How to create a string with a new operator
String a1 = new string ("This is your new string");
java

Masyvai

Masyvai naudojami kelioms reikšmėms saugoti vienoje kin­ta­mo­jo­je, vietoj to, kad kiek­vie­nai atskirai reikšmei būtų kuriamos skir­tin­gos kin­ta­mo­sios. Jie kuriamos naudojant kvad­ra­ti­nes skliaus­te­les. Saugomos reikšmės rašomos skliaus­tuo­se ir at­ski­ria­mos kab­le­liais. Štai masyvų sintaksė:

dataType[] arrayName = {value1, value2, value3,…};
java

Jei norite sukurti masyvą su eilutėmis, galite tai padaryti taip:

String[] colors = {"blue", "red", "yellow", "purple"};
java

Štai kaip sukurti masyvą su svei­kai­siais skaičiais:

int[] figures = {5, 10, 15, 20};
java

Pamokos

Java kalboje klasės yra duomenų tipai, kurie naudojami kaip šablonas objektams kurti. Jos sudaro įvairius kom­po­nen­tus, įskaitant klasės pa­va­di­ni­mą, mo­di­fi­ka­to­rius ir kūną, įrašytą į skliaus­te­lius. Štai pavyzdys, kaip atrodo klasė Java kalboje:

public class Main {
	int a = 10;
}
java

Sąsajos

Java kalboje sąsaja yra abstrakti klasė. Ji veikia kaip sąsaja, per kurią klasė gali pasiekti įvairias funkcijas. Tačiau norint tai padaryti, pir­miau­sia jas reikia įgy­ven­din­ti. Sąsajos sudaro tik kons­tan­tos ir abst­rak­čio­sios metodikos. Jų sintaksė atrodo taip:

interface {
	abstract methods
}
java

Čia pa­teik­si­me paprastą pavyzdį, kad pa­ro­dy­tu­me, kaip veikia sąsajos:

interface Pizza {
	public void ingredientsList();
	public void preparation();
}
class Mushroom implements Pizza {
	public void ingredientsList() {
		System.out.println("mushrooms, tomato sauce, oregano, mozzarella");
}
public void preparation() {
	System.out.println("The pizza will be ready in 15 minutes.");
}
}
class Main {
	public static void main(String[] args) {
		Mushroom myMushroom = new Mushroom();
		myMushroom.ingredientsList();
		myMushroom.preparation();
	}
}
java

Ati­tin­ka­mas Java komandos System.out.println išvesties re­zul­ta­tas atrodo taip:

mushrooms, tomato sauce, oregano, mozzarella
The pizza will be ready in 15 minutes.
java

Objektai

Java kalboje objektai taip pat yra su­dė­tin­gas duomenų tipas. Objektai yra klasių instancės, kurios gali tar­pu­sa­vy­je są­vei­kau­ti nau­do­da­mos metodus. Toliau pa­teik­ta­me pavyzdyje sukursime keletą objektų Main klasėje:

public class Main {
	int a = 10;
public static void main(String[] args) {
	Main myObj1 = new Main();
	Main myObj2 = new Main();
	System.out.println(myObj1.a);
	System.out.println(myObj2.a);
	}
}
java

Re­zul­ta­tas atrodo taip:

10
10
java

Enumai

Enumai yra speciali klasė, lei­džian­ti įtraukti ne­kin­ta­mas kons­tan­tas į jūsų kodą. Šioms kin­ta­mo­sioms pri­ski­ria­mos fiksuotos reikšmės, kurių negalima keisti. Šis duomenų tipas ypač naudingas, jei jums rei­ka­lin­gos kin­ta­mo­sios, kurios gali turėti tik keletą galimų būsenų. Enumo sintaksė atrodo taip:

enum NameOfTheClass {
	VALUE1,
	VALUE2,
	VALUE3
}
java
Go to Main Menu