Pubblicato da Carlo Humble
Java 7 è generalmente disponibile da oggi, la prima release della piattaforma Java in quanto acquisizione di Oracle di DomLa release comprende una serie di piccoli cambiamenti, ma il benvenuto alla lingua, incorpora una nuova API di file e la forcella / Join quadro, e migliora il supporto dei linguaggi dinamici sulla JVM.
Per le modifiche del linguaggio Java 7 sono stati gestiti nell'ambito del progetto Coin ( JSR 334 ), un successore di JSR 201 , progettata per migliorare il linguaggio Java con un assortimento di piccoli cambiamenti per migliorare la produttività. Di particolare rilievo è l'introduzione della "prova-con-risorse". Questo è analogo a istruzione C # 's utilizzando ma basata su una forma di istruzione try. Come risultato, mentre l'istruzione using richiede solo una singola risorsa, prova-con-risorse è in grado di gestire più risorse nell'ambito di un determinato blocco.
Due sono state apportate modifiche alla gestione delle eccezioni. In primo luogo, diversi tipi di eccezione può essere chiamato ad essere gestita da un singolo blocco catch. La grammatica di una clausola catch di un'istruzione try è esteso per consentire una serie di tipi di eccezione, separate dal "OR" simbolo dell'operatore, "|", da utilizzare nella dichiarazione del parametro eccezione. In secondo luogo, se un parametro eccezione non viene modificato e se è rilanciata all'interno del blocco catch, non si devono ora aggiungere l'eccezione per la firma del metodo.
Tra le altre modifiche del linguaggio:
- Aumentare l'istruzione switch per includere le stringhe.
- Il supporto per letterali binari e sottolineatura separatori nei numeri per aiutare la leggibilità - creditCardNumber per esempio lungo = 1234_5678_9012_3456L
- Metodo semplificato varargs invocazione: Un cambiamento del compilatore per gli avvisi che vengono emessi quando un metodo combina varargs con i reifiable tipi di matrice. Il cambio si muove l'avviso dal sito di chiamata per la dichiarazione di metodo.
- Inferenza di tipo migliore per la creazione di esempio generico (<> o diamante): utilizza l'inferenza di tipo limitato per la creazione di un'istanza di classe in modo che dove tipi di parametri devono essere esplicitamente dichiarate per un costruttore, ma potrebbero essere accertata dal contesto, allora possono essere sostituiti con un insieme vuoto di parametri di tipo. Così invece di scrivere:
Mappa
È possibile scrivere:> Lista anagrammi = new HashMap > Lista (); Mappa
> Lista anagrammi = new HashMap <> () ;
Due importanti nuove API sono state introdotte. Il primo è JSR 203 , che aggiunge nuove API per l'accesso ai file di sistema, asincrono scalabile operazioni I / O, socket-channel binding e la configurazione, e datagrammi multicast. Di particolare interesse per gli sviluppatori aziendali è l'aggiunta di un vero IO asincrono API, importante per applicazioni high-end server che bisogno bassa latenza e throughput elevato su molte connessioni. 203 aggiunge infine anche un vero e proprio file system API Java, fornendo il supporto per alcune funzioni del sistema operativo specifico. È possibile, ad esempio, creare link simbolici sui sistemi che li supportano. Come tale, si può sostenere, 203 non è strettamente "write-once-run-ovunque", anche se fornisce una API comune che funziona su tutte le piattaforme, così come le caratteristiche specifiche della piattaforma.
La seconda nuova API è la Forcella / Join Framework (parte della JSR 166 ), originariamente prevista per Java 5. Questo fornisce un meccanismo per gli sviluppatori per scomporre i problemi in compiti che possono essere eseguiti in parallelo attraverso un numero arbitrario di core di processore.
Altrove la piattaforma vede networking e sicurezza, e supporto esteso per l'internazionalizzazione tra cui il supporto Unicode 6,0.
Infine, Java SE 7 segna la prima istruzione bytecode nuovo dall'inizio del Java, con la InvokeDynamic parola chiave.InvokeDynamic aggiunge un altro modo di invocazione, e più si collega in modalità, che può essere programmato per definibili dall'utente specifiche. È specificamente destinato a sostenere l'esecuzione efficace e flessibile delle chiamate di metodo, in assenza di informazioni di tipo statico, che si traduce in sostanziali miglioramenti delle prestazioni per i linguaggi dinamici, come ad esempio JRuby e Jython, che prendono di mira la JVM.
Mentre le nuove funzionalità sono i benvenuti, per molti versi la cosa più importante su questa versione è il fatto che è stato spedito a tutti. La lunga disaccordo tra Sole e la Apache Software Foundation, e forse la leadership e problemi resourcing negli ultimi giorni di sole, ha comportato un insolitamente lungo iato fra le release. Come Mark Reinhold indicato in una recente intervista
... sia per motivi di lavoro e politiche di tipo Java entrato in modalità di sospensione per un po 'là. Ma siamo indietro, e abbiamo intenzione di spedire 7. Non è una liberazione rivoluzionaria, è una versione evolutiva, ma ci sono alcune cose davvero buone in esso.
Gli sviluppatori interessati a iniziare a lavorare con Java SE 7 rilascio possono sfruttare il NetBeans IDE 7,0 , o IntelliJ IDEA10.5, che supportano le nuove funzionalità della piattaforma Java SE 7. Eclipse Indigo ha anche il supporto beta livello per Java 7 disponibili, e Oracle JDeveloper supporto per JDK 7 è destinato a un rilascio entro la fine dell'anno.
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.