30. Juli 2010  
  Suche:
 
  Basics
  Code-Galerie
  Forum
  FAQ
  Tipps & Tricks
  Literatur
  Knowledge Base
  Workshops
  JSP-Hosting
  JSP-Engines
  Jobbörse
  Links
  JSP-Sites
  Newsletter
  JSP-Test
  Impressum
  Username:
  
  Passwort:
  
  

  Jetzt registrieren
  Warum registrieren?

  Valid HTML 4.01!
  Valid CSS!

Java 1.5 (Tiger)

von shark,  30.06.2004 16:12:02  (1 vote)  [vote]
Die Beta Version vom JDK 1.5 (Tiger) ist mittlerweile auf der Homepage von Sun Microsystems (TM) verfügbar.

Tiger beinhaltet neben Erweiterung im Bereich der Java-Bibliotheken auch Java Spracherweiterungen wie zum Beispiel eine For-Each-Schleife oder den Enumerationstyp.

Interessant sind dabei auch die parametrisierbaren Typen, die sogennanten Java Generics. Java Generics haben Parallelen zu den C++ Templates, sind allerdings nicht mit diesen gleichzusetzen. Generics bieten Typsicherheit zur Kompilierzeit und nicht zur Laufzeit einer Java Anwendung.

Generics Syntax:
-------------------------

class MyClass<Type> {

  Type value = null;

  public Type getValue() {
    return(this.value);
  }

  public void setValue(final Type value) {
    this.value = value;
  }
}

Im JSR-14 sind weiterführende Informationen zu den Generics, wie zum Beispiel: Verschachtelte Generics und Multi-Generics nachzulesen.

Mit Tiger wird auch das Casten von Objekttyp zu Objekttyp und von Objekttypen in elementare Datentypen einfacher, weil durch das Autoboxing implizite Typcasts erfolgen können.

Statische Imports ermöglichen das Importieren von statischen Member-Variablen (Attribute), einer Klasse oder eines Interfaces ohne deren Typ referenzieren zu müssen. Diese Funktion ist insbesondere für den Import von Java Konstanten interessant.

In dem nachfolgenden Beispiel werden alle statischen Attribute der Klasse "States" importiert: import static de.jsp.develop.tiger.States.*;

In Tiger sind auch Verbesserungen bezüglich des Thread-Schedulings und Erweiterungen in Bezug auf die Java Virtual Machine von Bedeutung. Details sind im Rahmen des Java Community Prozesses im JSR-176 nachzulesen.

Als Anregung an dieser Stelle ein kleines Java Beispielprogramm mit neuen Tiger Features:

/**
* JSP-Develop Tiger (Java 1.5) forecast
*/
package de.jsp.develop.tiger;

import java.util.*;

/**
* Tiger class which shows new features of
* Java 1.5.
*
* Features:
* (1) generics string list
* (2) for-each-loop
* (3) C/C++ style printf method
* (4) autoboxing
* (5) enumeration type 
*/
public class Tiger {

    /**
    * generics string list
    */
    static private List<String> stringList = new ArrayList<String>();

    /**
    * enumeration
    */
    static public enum Levels {LEVEL_1, LEVEL_2, LEVEL_3};
      
    /**
    * main method
    * (as an example and for test purpose only!)
    * @param args
    */
   public static void main(String[] args) {
      
     /**
      * java generics and for-each-loop example
      */
      
      // add string entry: allowed because of string object
      stringList.add("Generics");
      
      // add integer entry: produces compiler error because of integer object
      //--> stringList.add(new Integer(1));
      
      // for each loop to iterate over string list
      for(String entry: stringList) {
               
         System.out.printf("String-Listeintrag: %s\n", entry);      
      }
      
     /**
      * autoboxing example
      */

      Integer x = new Integer(6);
      int y = x;
            
      System.out.printf("Autoboxing : %d\n", y);
      
      int y1 = 6;
      Integer x1 = y1;
            
       System.out.printf("Autounboxing : %d\n", x1);
      
       Integer x2 = new Integer(12);
       Number y2 = x2;
             
      System.out.printf("Impliziter Typcast: %d\n", y2);
      
      /**
       * enum example
       */

      printLevel(Levels.LEVEL_1);
      printLevel(Levels.LEVEL_2);
      printLevel(Levels.LEVEL_3);
   }
   
   /**
    * print level method
    * (based on enumeration type)
    * @param level
    */
   static public void printLevel(final Levels level) {
            
      switch(level) {      
         case LEVEL_1:
           System.out.printf("LEVEL_1\n");
           break;
         case LEVEL_2:
           System.out.printf("LEVEL_2\n");
           break;
         case LEVEL_3:
           System.out.printf("LEVEL_3\n");
           break;
         default:
           System.out.printf("DEFAULT_LEVEL\n");
      }         
   }
}
[Druckansicht]    [Beitrag versenden]
<< zurück  Kommentieren

Kommentare zu diesem Eintrag
Re: Java 1.5 (Tiger)
shark, 03.10.2004 08:37:35

Ein weiteres wichtiges Feature in Java 1.5 ist die Möglichkeit Methodensignaturen mit variabler Anzahl von Argumenten auszustatten:

/**
* Klasse, welche die Anwendung einer
* variablen Anzahl von Argumenten in
* Methodensignaturen zeigt.
*/
public class varagsTest {

   /**
    * Varag-Methode
    * @param msg
    * @param int varag
    */
   static void vaMethod(final String msg, int ... v) {
      
      System.out.println(msg + " - " + v.length);
      
      for(int i: v) {
        System.out.println(i);   
      }      
   }
   
   /**
    * Hauptprogramm
    * @param args
    */
   public static void main(String[] args) {
      vaMethod("Kein Parameter");
      vaMethod("Ein Parameter",10);
      vaMethod("Zwei Parameter",10,20);      
   }
}

Re: Java 1.5 (Tiger)
shark, 30.10.2004 14:25:48

J2SE™ 5.0 ist Ende September 2004 von Sun Microsystems™ "announced" und auf deren Web-Seite verfügbar gemacht worden.

<< zurück


Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer Homepage angebrachten Links

Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig- und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes. Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.

Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation. Other trademarks and registered trademarks are the property of their respective owners.