Datatypen bestemmes av tre komponenter:
Programmeringsspråket inneholder noen forhåndsdefinerte innebygde typer og lar programmerere definere sine egne tilpassede.
I Java er datatyper delt inn i primitiv og referensiell.
"Primitiv" betyr at det er videreinndeling er umulig. Å utvide eller endre programmeringsspråket tillater ikke det. Denne datatypen er beskrevet av primitive og andre brukertyper.
En variabel av primitiv type inneholder en verdi, og en referanse inneholder adressen til et objekt i minnet.
Sammensatte data er delt inn i klasser, grensesnitt og matriser. Medlemmene av grensesnitttypen er abstrakte metoder og konstanter. I Java er datatyper for dato og tid spesifisert av Date () -konstruktøren:
Et eksempel på en lenke er også en streng.
En streng er en klasse definert i Java-biblioteket, og den kan brukes til å jobbe med tekst (en sekvens med tegn).
Erklæringen for referansen Strengvariabel er som følger: Streng str.
Før du tildeler en objektreferanse til en slik variabel, må du opprette den med den nye operatøren. For eksempel kan du opprette et objekt fra klasse String med teksten "Hei":
Hva skjer når denne koden kjøres?Først blir minnet tildelt, og navnet str er tilknyttet denne minnecellen. Dette er ikke forskjellig fra å erklære en primitiv variabel. Det andre kodestykket oppretter et strengobjekt i minnet med teksten "Hei" og lagrer en lenke til det (eller en minneadresse) i str.
Java-referansedatatyper tillater det ogsåtilordne en referanse til et objekt som er lagret i en annen variabel. Begge refererer til det samme objektet i minnet. Dette kan oppnås som følger:
Det er en nullpermalink som kan tilordnes enhver referansevariabel. Det refererer ikke til noe objekt.
Et strengobjekt opprettes ved hjelp av den nye operatøren.Men siden strengene ofte brukes, er det en enklere måte å lage en på. Alle strengelitterære, dvs. en sekvens med tegn som er omsluttet av doble sitater, blir behandlet som strengobjekter. Derfor, i stedet for den nye operatøren, kan strengbokstaver brukes:
Primitive Java-datatyper - byte, kort, int,lang, røye, flyte, dobbel og boolsk. De er delt inn i to kategorier: logisk og numerisk. Det siste kan deles inn i heltall og flytende punktnummer.
Java-heltallsdatatyper er numeriske typer hvis verdier er heltall. Det er fem av dem: byte, kort, int, lang og røye.
Int er en 32-bits signert primitiv datatype. Variabelen tar 32 bits minne. Det gyldige området er fra -2147483648 til 2147483647 (-231 opp til 231 - 1). Alle heltalene i dette området er heltal bokstaver eller konstanter. For eksempel er 10, -200, 0, 30, 19 int-bokstaver. De kan tilordnes en int-variabel:
Hele bokstaver kan uttrykkes som binære, oktale, desimale og heksadesimale tall.
Når en bokstavelig start fra null og har minst to sifre, regnes den som skrevet i oktalt format. 0 og 00 representerer samme verdi - null.
Alle int-bokstaver i heksadesimal format begynner med 0x eller 0x, og de må inneholde minst ett heksadesimaltall:
Int-bokstaver i binærformat begynner med 0b eller 0B:
Dette er en 64-bits signert primitiv type. Brukes når resultatet av beregninger kan overstige intervallet for int. Lang rekkevidde - fra -263 opp til 263- 1. Alle tall i dette området er bokstaver av lang type.
For å skille mellom int og lange datatyper i Java, ender bokstavelig av den siste typen alltid med L eller l.
Lange heltallstalale kan også uttrykkes i oktale, heksadesimale og binære formater.
Når en lang bokstav er tilordnet en lang variabel,Java-kompilatoren sjekker den tildelte verdien og sørger for at den er i et akseptabelt område; Ellers vil en kompilasjonsfeil oppstå.
Siden int-rekkevidden er mindre enn lang,verdien til en int-variabel kan alltid tilordnes en variabel av typen lang. Men omvendt tildeling er ikke mulig selv innen intervallet int. En eksplisitt referanse brukes for dette:
Byte er en 8-bits heltall primitiv type. Området er fra -128 til 127 (-27 opp til 27 - 1). Dette er den minste heltallstypen som er tilgjengelig i Java.Som regel brukes bytevariabler når et program involverer mange verdier i området fra -128 til 127, eller når du arbeider med binære data. I motsetning til int og lang literals, mangler byte literals. Du kan imidlertid tilordne en bytevariabel til enhver int-bokstav, siden den overstyrer byteområdet.
Hvis verdien til variabelen er utenfor rekkevidde, vil Java kaste en kompilatorfeil.
I tillegg kan du bare tilordne en int-bokstav, men ikke verdien som er lagret i int-variabelen, siden dette kan føre til tap av presisjon. Dette vil kreve en eksplisitt type rollebesetning.
Representerer en 16-bits signert heltall primitiv datatype. Området er fra -32768 til 32767 (eller -215 opp til 215 - 1).
Generelt behovet for korte variableroppstår når programmet bruker et stort antall verdier som ikke overskrider det spesifiserte området. Det er ingen kort bokstavelige, men tildeling av noen int literal innen kort rekkevidde er mulig. Verdien av en bytevariabel kan alltid tilordnes. Resten av reglene for tildeling av en int eller lang kortvariabel er de samme som for byte.
Char er 16-biters usignerten primitiv datatype som representerer et Unicode-tegn. Fraværet av et tegn betyr at variabelen ikke kan ha en negativ verdi. Området er fra 0 til 65535, som samsvarer med Unicode-tegnsettkodingen. En bokstavelig representerer en char-verdi og kan uttrykkes i følgende former:
Et symbol kan uttrykkes ved å legge det innenkelt sitater: char C1 = "A". Doble anførselstegn indikerer en streng bokstavelig som ikke kan tilordnes en char variabel, selv om strengen bare består av ett tegn. Dette er ikke tillatt siden en henvisning til en primitiv variabel ikke er tilordnet. Alle strengelitterære er gjenstander for strengeklassen og er derfor referanser, mens karakterlitterære er av en primitiv type.
Det bokstavelige uttrykt ved fluktsekvensen er skrevet som en motbakke med tegnet i enkelt sitater. Det er 8 av dem: ‘n’, ‘r’, ‘f’, ‘b’, ‘t’, ‘\’, ‘’ ’,‘ ’.
Unicode-kontrollsekvensen har skjemaet"uxxxx", der u (tilbakeskrittet fulgt av en liten bokstav u) indikerer begynnelsen, og xxxxx representerer nøyaktig fire heksadesimale siffer for karakterkoden i Unicode-systemet. For eksempel har "A" en verdi på 65 i desimal og 41 i sekskant. Dermed kan dette symbolet bli representert som "u0041".
Den oktale flukt-sekvensen er skrevet som "nnn", hvor n er det oktale sifferet (0-7). Verdiene er fra "00" til "377", der 3778 tilsvarer 25510. Поэтому она используется для представления tegn med en kode fra 0 til 255, nødvendig for kompatibilitet med andre programmeringsspråk. I motsetning til en Unicode-sekvens, der alle fire heksadesimale sifre er nødvendig, kan du her bruke 1, 2 eller 3 oktal: "n", "nn" eller "nnn".
Boolean har bare to gyldige verdier:sant (sant) og usant (usant). De kalles boolske bokstaver. En logisk variabel kan ikke kastes til en annen type og omvendt. Java bestemmer ikke størrelsen på boolesk - det avhenger av den spesifikke implementeringen av den virtuelle Java-maskinen.
Nummeret som inneholder brøkdelen i minnetEn datamaskin kan lagres i en visning med et fast antall sifre før og etter et punkt eller som indikerer plasseringen. Siden antallet sifre kan variere, sier de at poenget "flyter".
I Java bruker datatyper med flytende punkt 32 biter. I henhold til IEEE 754-standarden tilsvarer dette en enkelt presisjon, som for eksempel tillater å representere tallene 1,4 x 10-45 og 3,4 x 1038både positive og negative.
Alle reelle tall som ender på f eller F kalles float literals. De kan presenteres i desimalformat og som vitenskapelig notasjon. For eksempel:
Typen definerer to nuller: + 0,0F (eller 0,0F) og -0,0F.For sammenligningsformål anses imidlertid begge nuller som like. I tillegg definerte han to typer uendelig: positiv og negativ. Resultatene fra noen operasjoner (for eksempel ved å dele 0,0F med 0,0F) er ikke definert og er representert av spesialverdien NaN.
Double bruker 64 biter for å lagre flytende punktnumre. Et dobbelt presisjonsnummer kan representere positive og negative verdier på 4,9 x 10-324 og 1,7 x 10308.
Alle reelle tall er som standarddobbelt literal. Eventuelt kan de angis eksplisitt med suffikset d eller D, for eksempel 19.27d. En dobbelt literal kan uttrykkes i desimalform og i vitenskapelig notasjon.