Introduksjon til Java Primitives

1. Oversikt

Java Programming Language har åtte primitive datatyper.

I denne artikkelen vil vi huske hva primitiver er og gå over dem.

2. Primitive datatyper

De åtte primitivene som er definert i Java er int, byte, kort, lang, flyte, dobbelt, boolsk, og røye - de regnes ikke som objekter og representerer råverdier.

De lagres direkte på bunken (sjekk ut denne artikkelen for mer informasjon om minnestyring i Java).

La oss ta en titt på lagringsstørrelse, standardverdier og eksempler på hvordan du bruker hver type.

La oss starte med en rask referanse:

TypeStørrelse (biter)MinimumMaksimumEksempel
byte8-2727– 1byte b = 100;
kort16-215215– 1kort s = 30_000;
int32-231231– 1int i = 100_000_000;
lang64-263263– 1lang l = 100_000_000_000_000;
flyte32-2-149(2-2-23)·2127flottør f = 1,456f;
dobbelt64-2-1074(2-2-52)·21023dobbelt f = 1,456789012345678;
røye160216– 1røye c = ‘c’;
boolsk1boolsk b = sann;

2.1. int

Den første primitive datatypen vi skal dekke er int. Også kjent som et heltall, int type har et bredt spekter av ikke-brøkvise tallverdier.

Nærmere bestemt, Java lagrer den ved hjelp av 32 minne. Med andre ord kan den representere verdier fra -2,147,483,648 (-231) til 2,147,483,647 (231-1).

I Java 8 er det mulig å lagre en usignert heltallverdi opp til 4.294.967.295 (232-1) ved å bruke nye spesielle hjelperfunksjoner.

Vi kan ganske enkelt erklære en int ganske enkelt:

int x = 424_242; int y;

Standardverdien for en int erklært uten oppgave er 0.

Hvis variabelen er definert i en metode, må vi tilordne en verdi før vi kan bruke den.

Vi kan utføre alle vanlige regneoperasjoner på ints. Bare vær klar over det desimalverdier blir hugget av når du utfører disse på heltall.

2.2. byte

byte er en primitiv datatype som ligner på int, unntatt det tar bare 8 biter minne. Derfor, hvorfor vi kaller det en byte. Fordi minnestørrelsen er så liten, byte kan bare holde verdiene fra -128 (-27) til 127 (27 - 1).

Vi kan skape byte:

byte b = 100; byte tom;

Standardverdien på byte er også 0.

2.3. kort

Neste stopp på vår liste over primitive datatyper i Java er kort.

Hvis vi vil spare minne og byte er for liten, kan vi bruke typen halvveis mellom de to: kort.

Med 16 biter minne er det halvparten av størrelsen på int og dobbelt så stor som byte. Dens rekke mulige verdier er -32 768 (-215) til 32 767 (215 - 1).

kort blir erklært slik:

kort s = 202_020; shorts;

I likhet med de andre typene, er standardverdien 0. Vi kan også bruke all standardregning på den.

2.4. lang

Vår siste primitive datatype relatert til heltall er lang.

lang er storebror til int. Den er lagret i 64 biter minne slik at den kan inneholde et betydelig større sett med mulige verdier.

De mulige verdiene for en lang er mellom -9,223,372,036,854,775,808 (-263) til 9,233,372,036,854,775,807 (263 - 1).

Vi kan bare erklære en:

lang l = 1_234_567_890; lang l;

Som med andre heltallstyper er også standard 0. Vi kan bruke all aritmetikk på lang som fungerer på int.

2.5. flyte

Vi representerer grunnleggende brøknumre i Java ved hjelp av flyte type. Dette er et desimaltall med en presisjon. Hvilket betyr at hvis vi kommer over seks desimaler, blir dette tallet mindre presist og mer av et estimat.

I de fleste tilfeller bryr vi oss ikke om presisjonstapet. Men hvis beregningen vår krever absolutt presisjon (dvs. økonomiske operasjoner, landing på månen osv.), Må vi bruke spesifikke typer designet for dette arbeidet. For mer informasjon, sjekk ut Java-klassen Big Decimal.

Denne typen er lagret i 32 bits minne akkurat som int. Imidlertid er rekkevidden mye forskjellig på grunn av det flytende desimaltegnet. Det kan representere både positive og negative tall. Den minste desimalen er 1,40239846 x 10-45, og den største verdien er 3,40282347 x 1038.

Vi erklærer flyteer det samme som alle andre typer:

flottør f = 3.145f; flyte f;

Og standardverdien er 0,0 i stedet for 0. Legg også merke til at vi legger til f betegnelse til slutten av bokstavtallet for å definere en flottør. Ellers vil Java kaste en feil fordi standard typen desimalverdi er dobbelt.

Vi kan også utføre alle vanlige regneoperasjoner på flytes. Imidlertid er det viktig å merke seg at vi utfører aritmetikk med flytende punkt veldig annerledes enn heltall aritmetikk.

2.6. dobbelt

Deretter ser vi på dobbelt - navnet kommer av det faktum at det er et desimalnummer med dobbelt presisjon.

Den er lagret i 64 bits minne. Hvilket betyr at det representerer et mye større utvalg av mulige tall enn flyte.

Selv om det lider av samme presisjonsbegrensning som flyte gjør. Området er 4.9406564584124654 x 10-324 til 1.7976931348623157 x 10308. Det området kan også være positivt eller negativt.

Erklæring dobbelt er det samme som andre numeriske typer:

dobbel d = 3.13457599923384753929348D; dobbel d;

Standardverdien er også 0,0 som den er med flyte.Lik flyte, vi legger ved brevet D å betegne bokstavelig som en dobbel.

2.7. boolsk

Den enkleste primitive datatypen er boolsk. Den kan bare inneholde to verdier: ekte eller falsk. Den lagrer verdien i en enkelt bit.

For enkelhets skyld legger Java imidlertid verdien og lagrer den i en enkelt byte.

Erklære boolsk som dette:

boolsk b = sann; boolsk b;

Å erklære det uten en verdi er standard falsk. boolsk er hjørnesteinen i å kontrollere programflyten vår. Vi kan bruke boolske operatører på dem (dvs. og, eller, etc.).

2.8. røye

Den siste primitive datatypen å se på er røye.

Også kalt et tegn, røye er et 16-biters heltall som representerer et Unicode-kodet tegn. Rekkevidden er fra 0 til 65535. Som i Unicode representerer ‘\ U0000 ' til ‘\ Uffff '.

For en liste over alle mulige Unicode-verdier, sjekk ut nettsteder som Unicode Table.

La oss nå erklære a røye:

char c = 'a'; røye c = 65; røye c;

Når vi definerer variablene våre, kan vi bruke alle bokstavelige tegn, og de blir automatisk forvandlet til Unicode-kodingen for oss. Standardverdien for tegn er ‘/ U0000’.

2.9. Flyte

De primitive datatypene har størrelsesbegrensninger. Men hva skjer hvis vi prøver å lagre en verdi som er større enn maksimumsverdien?

Vi får en situasjon som kalles flyte.

Når et heltall renner over, ruller det over til minimumsverdien og begynner å telle opp derfra.

Flytpunkt nummer overløp ved å returnere Infinity. Når de strømmer under, returnerer de 0,0.

Her er et eksempel:

int i = Heltall.MAX_VALUE; int j = i + 1; // j vil rulle over til -2_147_483_648 dobbel d = Double.MAX_VALUE; dobbel o = d + 1; // o vil være uendelig

Understrøm er det samme problemet bortsett fra hvis vi lagrer en verdi som er mindre enn minimumsverdien.

2.10. Autoboksing

Hver primitive datatype har også en full implementering av Java-klassen som kan pakke den inn. For eksempel Heltall klassen kan pakke inn en int. Noen ganger er det behov for å konvertere fra den primitive typen til gjenstandsinnpakningen (for eksempel å bruke dem med generiske stoffer).

Heldigvis kan Java utføre denne konverteringen automatisk for oss. Vi kaller denne prosessen Autoboksing. Her er et eksempel:

Tegn c = 'c'; Heltall i = 1;

3. Konklusjon

I denne opplæringen har vi dekket de åtte primitive datatypene som støttes i Java.

Dette er byggesteinene som brukes av de fleste, ikke alle Java-programmer der ute - så det er vel verdt å forstå hvordan de fungerer.