Forskjeller mellom Java 1.4 og Java 1.5

Java ble opprinnelig opprettet i 1995, men det har endret regelmessig siden da. Mange viktige endringer har blitt gjort gjennom årene; noen av de mest bemerkelsesverdige, fra en vanlig utviklerens synspunkt, skjedde mellom 1,4 og 1,5, og de fleste av disse endringene skjedde i Collection API.

generiske typer

Den generiske typen funksjonalitet lar programmereren å eventuelt definere hvilken type verdier som er lagret i den innebygde samling klasser, slik som HashMap og Arraylist. Dette erstatter 1,4-kode:

Arraylist data = new Arraylist ();

data.add (ny Double (4,0));

Dobbel verdi = (Dobbeltrom) data.get (0);

Med 1,5-kode:

Arraylist <Doble> data = new Arraylist <Double> ();

data.add (ny Double (4,0);

Dobbel verdi = data.get (0);

Erklæringen av Arraylist blir litt mer uhåndterlig, men programmerere kan gjenkjenne fordelene. Kompilatoren håndterer nå data casting og potensielt crash-forårsaker støpt feil i den tredje linjen i 1,4 kode er fanget ved kompilering.

Autoboxing

En av de smålige ulemper har blitt fjernet fra arbeid med samlingene objekter også. Mesteparten av tiden, vil rå numeriske data lagres i primitive, ikke-objektdatatyper som int og double. Det er imidlertid bare deres objekt, klassebaserte ekvivalenter kan lagres i en samling. I 1.4, programmerer måtte lage et nytt objekt manuelt hver gang han eller hun ønsket å lagre et nummer i en samling, og kastet den tilbake til en primitiv datatype når den ble trukket ut. Autoboxing tillater Java for å håndtere dette automatisk, så koden:

data.add (ny Double (4,0));

Kan nå erstattes med:

data.add (4,0);

Java vil håndtere konvertering fra "dobbel" til "Double" automatisk.

Forbedret For Loop

Ved lagring av data i en matrise eller noen av samlingen datastrukturer, kan programmereren forkorte den tradisjonelle for loop fra det kjente:

for (int x = 0; x <data.size (); x ++) {

// do something with each double in "data"

}

Til mer kompakt og lett å lese:

for (Double D: data) {

// do something with each double in "data"

}

oppregnet Typer

Java 1.5 lagt til "enum" type til språket. Tradisjonelt, hvis en programmerer ønsket å holde styr på alle mulige verdier av et alternativ, han eller hun måtte kartlegge ord til heltall som bruker den "endelige static int" datatype, som så:

public class Stopplys {

int color = 0;

endelige statiske int RED = 0;

endelige statiske int GUL = 1;

endelige statiske int GRØNN = 2;

}

Dette var kjedelig og feil utsatt. For eksempel, hva skjer hvis fargen blir "4?" Enum gjør løsningen langt mer elegant:

Trafiklyset Color = Stoplight.RED;

offentlig enum Stopplys {

RED, YELLOW, GREEN

};

I motsetning til den gamle "endelige statisk" måte, kompilatoren vet nå hva gyldige alternativer er for "Stoplight" og kan håndheve dem for oss. Som en ekstra bonus, dersom verdien av "Color" er skrevet til konsollen, vil det ut som det engelske ordet, og ikke som et tall.