Differenze tra Java 1.4 e Java 1.5

March 8

Java è stato originariamente creato nel 1995, ma ha cambiato regolarmente da allora. Un sacco di importanti modifiche sono state apportate nel corso degli anni; alcuni dei più degno di nota, dal punto di vista di uno sviluppatore ordinario, avvenuto tra 1.4 e 1.5, e la maggior parte di tali modifiche è accaduto nel API Collection.

tipi generici

La funzionalità di tipo generico permette al programmatore di facoltativamente definire il tipo di valori che vengono memorizzati nelle classi di raccolta built-in, come HashMap e ArrayList. Questo sostituisce il codice 1.4:

Dati ArrayList = new ArrayList ();

data.add (nuova doppia (4,0));

Doppia valore = (doppio) data.get (0);

Con il codice 1.5:

ArrayList <> Doppia data = new ArrayList <doppio> ();

data.add (nuova doppia (4,0);

valore doppio = data.get (0);

La dichiarazione del ArrayList diventa un po 'più ingombrante, ma i programmatori in grado di riconoscere i benefici. Il compilatore ora gestisce la fusione dei dati e l'errore getto potenzialmente-crash causando nella terza riga del codice 1.4 e 'colto in fase di compilazione.

autoboxing

Uno dei fastidi piccoli è stato rimosso dal lavorare con le collezioni di oggetti pure. La maggior parte del tempo, i dati numerici grezzi saranno conservati in, non oggetto tipi di dati primitivi, come int e doppio. Tuttavia, solo per oggetto, equivalenti classe-based può essere memorizzato in una raccolta. In 1.4, il programmatore ha dovuto creare manualmente un nuovo oggetto ogni volta che lui o lei voleva memorizzare un numero in una collezione, e gettato di nuovo a un tipo di dati primitivo quando è stato tirato fuori. Autoboxing permette Java per gestire questo automaticamente, in modo che il codice:

data.add (nuova doppia (4,0));

ora può essere sostituito con:

data.add (4,0);

Java consente di gestire la conversione da "doppio" a "doppia" automaticamente.

Migliorato per Loop

Quando si memorizzano i dati in un array o una qualsiasi delle strutture dati di raccolta, il programmatore può accorciare il tradizionale ciclo dal familiare:

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

// do something with each double in "data"

}

Per la più compatta e facilmente leggere:

per (Double D: dati) {

// do something with each double in "data"

}

tipi enumerati

Java 1.5 ha aggiunto il tipo "enum" per la lingua. Tradizionalmente, se un programmatore voleva tenere traccia di tutti i possibili valori di una opzione, lui o lei ha dovuto mappare parole a numeri interi che utilizzano il tipo di dati "final int statico", in questo modo:

public class Semaforo {

int color = 0;

= Static final int Rosso 0;

= Static final int giallo 1;

statici = GREEN int finali 2;

}

Questo è stato noioso e soggetto ad errori. Ad esempio, cosa succede se il colore diventa "4?" Enum rende la soluzione di gran lunga più elegante:

Semaforo Colore = Stoplight.RED;

enum pubblico Semaforo {

RED, YELLOW, GREEN

};

A differenza del vecchio modo "finale statico", il compilatore ora sa quali opzioni valide sono per "Semaforo" e li può valere per noi. Come bonus aggiuntivo, se il valore di "Colore" è stampato sulla console, verrà stampata come la parola inglese, e non come un numero.