Download
java 1 5 new features n.
Skip this Video
Loading SlideShow in 5 Seconds..
Java 1.5 New Features PowerPoint Presentation
Download Presentation
Java 1.5 New Features

Java 1.5 New Features

451 Vues Download Presentation
Télécharger la présentation

Java 1.5 New Features

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Java 1.5 New Features

  2. Java 1.3 77 packages 1595 classes Java 1.0 8 packages 212 classes Java 1.1 23 packages 504 classes Java 1.2 59 packages 1520 classes Java 1.4 103 packages 2175 classes Java 1.5 131 packages 2656 classes javax.activity, javax. management New Events Inner class Object Serialization Jar Files International Reflection JDBC RMI JFC/Swing Drag and Drop Java2D CORBA JNDI Java Sound Timer Regular Exp Logging Assertions NIO java.nio, javax.imageio, javax.net, javax.print, javax.security, org.w3c javax.naming, javax.sound, javax.transaction javax.accessibility, javax.swing, org.omg java.math, java.rmi, java.security, java.sql, java.text, java.beans java.applet, java.awt, java.io, java.lang, java.net, java.util

  3. New Features • Scanner • Printf • Autoboxing • Enumerated Types • Foreach loop • Generic Types

  4. Other New Features • Static import: import static java.Math.*; • Variable length argument lists. • Semaphores • Metadata

  5. java.util.Scanner Scanner stdin = Scanner.create(System.in); int n = stdin.nextInt(); String s = stdin.next(); boolean b = stdin.hasNextInt()

  6. printf method • Similar to C style printf • Handles • strings • native types • numeric types • java.util.Date • See java.util.Formatter for details

  7. Autoboxing/Unboxing • Wrap ints into Integers • Extract ints from Integers This is now legal: Integer x = 6; //6 is boxed Integer y = 2*x + 3; //x is unboxed, 15 is boxed You could hide primitives entirely!

  8. Object Only Performance int x = 6; int y = 2*x; Code: 0: bipush 6 2: istore_1 3: iconst_2 4: iload_1 5: imul 6: istore_2

  9. Object Only Performance Integer x = 6; Integer y = 2*x; Code: 0: bipush 6 2: invokestatic #2; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 5: astore_1 6: iconst_2 7: aload_1 8: invokevirtual #3; //Method java/lang/Integer.intValue:()I 11: imul 12: invokestatic #2; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 15: astore_2

  10. Object Only Performance Integer x = Integer.valueOf(6); Integer y = Integer.valueOf(2 * x.IntValue); Generates the same byte code.

  11. Type-safe enum enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } //used Day today = Day.WEDNESDAY; switch(today){ case SUNDAY: break; //… }

  12. More Complex Enum enum Suit { CLUBS(Color.BLACK), DIAMONDS(Color.RED), HEARTS(Color.RED), SPADES(Color.BLACK); private Color color; Suit(Color color) { this.color = color; } public Color getColor() { return color; } }

  13. Generics ArrayList<Number> list = new ArrayList<Number>(); list.add(new Integer(5)); list.add(6); list.add(new Double(3.14159/2)); list.add(new BigInteger("123456789012301234567890")); list.add(new Long(127L)); Number n = list.get(i);

  14. Defining Generics public class GenericStack<T> implements Iterable<T> { private T[] data; … public GenericStack() { data = (T[])new Object[MIN_SIZE]; … } public T pop(){ … } public void push(T item) { … } public Iterator<T> iterator(){ … } //since it is iterable }

  15. Defining Generic Iterator //inner class of GenericStack private class GenericStackIterator implements Iterator<T> { int index; GenericStackTestIterator() { index = top; } public boolean hasNext() { return index >= 0; } public T next() { if(index < 0) { throw new java.util.NoSuchElementException(); } T item = data[index]; index--; return item; } public void remove() { throw new UnsupportedOperationException( ) } }

  16. For each loop (arrays) double[] array = {2.5, 5.2, 7.9, 4.3, 2.0}; for(double d: array) { System.out.println(d); } Iterate (forward) through the array without paying attention to indices.

  17. For each loop (Collections) ArrayList<Integer> list = new ArrayList<Integer>(); list.add(7); list.add(15); list.add(-67); for(Integer number: list){ System.out.println(number); }

  18. For each loop enums for( Suit s: Suit.values()){ System.out.println(s.getColor()); } values() returns an Iterator for enum types

  19. Wish list • Preprocessor • Embedded languages: SQL, Regular Expression syntax. • Operator Overloading • Assignment • Equality • [ ] for Lists

  20. Classroom Incorporation • Investigate use with undergrad. • Example: Servlets/JSP in Databases JavaCard in Architecture. • Metadata for Generating Code in Compilers

  21. References • Calvin Austin. J2SE 1.5 in a Nutshell. http://java.sun.com/developer/technicalArticles/releases/j2se15 • Gilad Bracha. Generics in the Java Programming Language. http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf • David Flanagan. Java in a Nutshell. O’Reilly. 1st, 2nd and 3rd editions. • Cay Hortsmann and Gary Cornell. Core Java 2. Prentice Hall.

  22. Examples online http://cs.gettysburg.edu/~cpresser/java The latest additions will be made next week Including this presentation. email: cpresser@gettysburg.edu

  23. The End….

  24. No, really.Stop clicking.

  25. New event model Inner classes Object Serialization JAR files Internationalization Reflection Java Database Connectivity (JDBC) Remote Method Invocation (RMI) Java History Java 1.0 8 Packages, 212 Classes Java 1.1 23 Packages, 504 Classes

  26. JFC (Swing) Drag and Drop Java 2D Java History Java 1.2 59 Packages, 1520 Classes Java 1.3 77 Packages, 1595 Classes • Java Naming and Directory Interface (JNDI) • Java Sound • Timer class

  27. Regular Expressions Assertions Logging New I/O (NIO) Java History Java 1.4 103 Packages, 2175 Classes Java 1.5 131 Packages, 2656 Classes • What, and ruin the surprise?