Neues in Java 5
Der Nachfolger von Java 1.4 heißt jetzt Java 5 und es hat sich unglaublich viel getan! Da Java sowie immer Programmiersprache und Bibliothek auf einmal war, finden wir auch genauso Änderungen in beiden Bereichen. In die Sprache sind Features wie Generics und Annotationen eingezogen und die Bibliotheken mit fast 3.300 Klassen noch fetter geworden.
Der Nachfolger von Java 5 ist Java 6.
Wichtige hinzugekommene Pakete
- java.lang.annotation
- java.lang.instrument
- java.lang.management
- java.util.concurrent
- javax.sql.rowset
- javax.xml.xpath
Wichtige hinzugekommene Klassen und Schnittstellen
- Closeable
- Appendable
- Iterable
- ProcessBuilder
- Type,- TypeVariable
- StringBuilder(die nicht-synchronisierte Variante von- StringBuffer)
- Formatter
- Queueund- BlockingQueue. Mit implementierenden Klassen- ArrayBlockingQueue,- ConcurrentLinkedQueue,- DelayQueue,- LinkedBlockingQueue,- LinkedList,- PriorityBlockingQueue,- PriorityQueue,- SynchronousQueue
- UUID
- MouseInfo
- PointerInfo
Einige hinzugekommene Funktionenn
- In Collections:reverseOrder(...),addAll(...),disjoint(...)
- Appendable append(CharSequence csq) throws IOException
- Unicode Code Points in String-Klassen
- Neuer Konstruktor String(StringBuilder)
- In StringBuffertrimToSize()und ein neuer KonstruktorStringBuffer(CharSequence). Zusätzlich zum Einfügen und Anhängen:append(CharSequence s),append(CharSequence s, int srcOffset, int len),insert(int dstOffset, CharSequence s),insert(int dstOffset, CharSequence s, int srcOffset, int len)
- In String statt s.indexOf > -1nuncontains(String)
- Thread.getStackTrace(),- Thread.getAllStackTraces()
- In ClassTT cast(Object obj)
- InetAddress unterstützt Erreichbarkeit von Hosts mit isReachable()
- Proxy-Unterstützung in Socket
- In Arrays:toString(Array),hashCode(Array),deepEquals(Object[] a1, Object[] a2),deepToString(Object[] a)sowiedeepHashCode(Object a[])
- nanoTime()in- Systemund- getenv()für die System-Umgebungsvariablen
- valueOf()in- Byte,- Character,- Short,- Integer,- Long,- Float,- Double,- parseXXX()verallgemeinert
- toHexString(double d)in- Doubleund- Float
- Bitfunktionen wie bitCount(),highestOneBit(),lowestOneBit()inInteger.
- Math:- log10(),,- cbrt()für dritte Wurzel,- ulp()für Abstand von- doublezu- float, Hyperbolische Funktionen.
- Propertiesin XML speichern
- defineClass()in- ClassLoadernimmt nun auch- ByteBuffer-Objekte
APIs
Links zu Generics
- Java Generics FAQs
- Java 6 Core Techniken (Friedrich Esser)
- Generics in the Java Programming Language (Gilada Bracha. 07/2004). Aktualisiert im Java-Tutoral von Sun.
- Java Generics: Raw Type und Type Erasure (Klaus Kreft, Angelika Langer. JavaSPEKTRUM 2007)
- Java theory and practice Generics gotchas (Brian Goertz. 01/2005)
- Talking Tiger, generically speaking (Matt Quail. 05/2004)
- Typgenerizität in Java 1.5 (Minning)
- ONJava.com Generic Types, Part 1 (David Flanagan. 05/2005)
- Diagnosing Java code: Java generics without the pain (Eric Allen, IBM Developer Works)
Links allgemein
- New Features and Enhancements J2SE 5.0 (Sun)
- Declarative Programming in Java (Narayanan Jayaratchagan. 04/2004)
- Counting Characters (Problems with Unicode 4)
- Java theory and practice More flexible, scalable locking in JDK 5.0
- Concurrent Programming with J2SE 5.0
- Taming Tiger - Formatted output
- Implementing the State Design Pattern using Enums
- Java SE 1.5 in a Nutshell
- Object Computing, Inc. - Java News Brief - August 2004
- Java Community Process Maintenance Review for Java SE 1.5.0 Beta 1
- Using JConsole to Monitor Applications
- Concurrent Programming with Java SE 5.0
- Effective Concurrency for the Java Platform (Simon Ritter)