Java 1.5 - PowerPoint PPT Presentation

1 / 13
About This Presentation
Title:

Java 1.5

Description:

Java 1.5 Reason for changes The new language features all have one thing in common: they take some common idiom and provide linguistic support for it. – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 14
Provided by: DavidMa89
Category:
Tags: java | monaco

less

Transcript and Presenter's Notes

Title: Java 1.5


1
Java 1.5
2
Reason for changes
  • The new language features all have one thing in
    common they take some common idiom and provide
    linguistic support for it. In other words, they
    shift the responsibility for writing the
    boilerplate code from the programmer to the
    compiler. --Joshua Bloch, senior staff
    engineer, Sun Microsystems

3
New features--maybe
  • Generics
  • Compile-time type safety for collections without
    casting
  • Enhanced for loop
  • Eliminates the drudgery and error-proneness of
    iterators
  • Autoboxing/unboxing
  • Avoids manual conversion between primitive types
    (such as int) and wrapper types (such as Integer)
  • Typesafe enums
  • Provides all the well-known benefits of the
    Typesafe Enum pattern
  • Static import
  • Lets you avoid qualifying static members with
    class names
  • Metadata
  • Tools to generate boilerplate code from
    annotations in the source code
  • Leads to a "declarative" programming style where
    the programmer says what should be done and tools
    emit the code to do it

4
Generics
  • A generic is a method that is recompiled with
    different types as the need arises
  • The bad news
  • Instead of saying List words new ArrayList()
  • You'll have to say ListltStringgt words
    new ArrayListltStringgt()
  • The good news
  • Provides compile-time checking to make sure you
    are using the correct type
  • No casting instead of String title
    ((String) words.get(i)).toUppercase()you use
    String title words.get(i).toUppercase()

5
Enhanced for loop
  • Instead of void cancelAll(Collection c)
    for (Iterator i c.iterator() i.hasNext()
    ) TimerTask tt (TimerTask)
    i.next() tt.cancel()
  • You will be able to use void
    cancelAll(Collection c) for (Object o
    c) ((TimerTask)o).cancel()
  • Or void cancelAll(CollectionltTimerTaskgt c)
    for (TimerTask task c)
    task.cancel()
  • Not everyone likes this syntax!

6
Autoboxing
  • Java wont let you use a primitive value where an
    object is required--you need a wrapper
  • Similarly, you cant use an object where a
    primitive is required--you need to unwrap it
  • Java 1.5 makes this automatic
  • MapltString, Integergt m
    new TreeMapltString, Integergt() for
    (String word args) m.put(word,
    m.get(word) 1)

7
Enumerations
  • An enumeration, or enum, is simply a set of
    constants to represent various values
  • Heres the old way of doing it
  • public final int SPRING 0public final int
    SUMMER 1public final int FALL 2public
    final int WINTER 3
  • This is a nuisance, and is error prone as well
  • Heres the new way of doing it
  • enum Season winter, spring, summer, fall

8
Advantages of the new enum
  • They provide compile-time type safety
  • int enums don't provide any type safety at all
  • They provide a proper name space for the
    enumerated type
  • With int enums you have to prefix the constants
    to get any semblance of a name space.
  • They're robust
  • int enums are compiled into clients, and you have
    to recompile clients if you add, remove, or
    reorder constants.
  • Printed values are informative
  • If you print an int enum you just see a number.
  • Because they're objects, you can put them in
    collections.
  • Because they're essentially classes, you can add
    arbitrary fields and methods

9
New features of enum
  • public enum Coin penny(1), nickel(5),
    dime(10), quarter(25) Coin(int value)
    this.value value
  • private final int value
  • public int value() return value

10
Static import facility
  • import static org.iso.Physics.class Guacamole
    public static void main(String args)
    double molecules AVOGADROS_NUMBER
    moles ...
  • You no longer have to say Physics.AVOGADROS_NUMBER

11
Metadata
  • Boilerplate is code that is inserted over and
    over again, into many different programs
  • The _at_ symbol is used to tell the compiler to
    fetch the code from somewhere else, and insert it
  • It is unclear to me how else this will be used
  • I doubt that its just an insert facility

12
Status
  • Java 1.5 is due out in late 2003
  • At this point, it seems highly unlikely that 1.5
    will be out by the end of 2003
  • My description is from an ancient article--May
    2003
  • It isnt easy to find out much more than this
  • Lets hope for the best!

13
The End
Write a Comment
User Comments (0)
About PowerShow.com