Java: Unterschied zwischen den Versionen

Aus Claudio's Wiki
Wechseln zu: Navigation, Suche
(Uebersicht)
(Uebersicht)
Zeile 38: Zeile 38:
 
[http://openbook.galileocomputing.de/javainsel8/javainsel_12_001.htm#mjd5bf25e7b0daf938491d4e26cc4df665 Galileocomputing JavaInsel 8 Kapitel 12.1.6].
 
[http://openbook.galileocomputing.de/javainsel8/javainsel_12_001.htm#mjd5bf25e7b0daf938491d4e26cc4df665 Galileocomputing JavaInsel 8 Kapitel 12.1.6].
  
<br /><br />
+
<br />
  
 
===Sorting===
 
===Sorting===

Version vom 8. Juli 2009, 10:49 Uhr

Operatoren

freehep


IF THEN ELSE

Abkürzung für if-then-else: ?:

boolean-expression ? op1 : op2 ;

Bedeutet:
IF boolean-expression = true THEN op1 ELSE op2;

Wichtig: Diese Operation gibt ein Wert zurück! Also entweder op1 oder op2, je nach dem, ob die boolean-expression true oder false ist! Also:

newOp = boolean-expression ? op1 : op2 ;

Bedeutet:
IF boolean-expression = true THEN newOp = op1 ELSE newOp = op2;

Schleifen

break und continue

In for-, while- und do-while-Schleifen können break und continue eingesetzt werden:

break
Der Schleifendurchlauf wird beendet und die Abarbeitung bei der ersten Anweisung nach der Schleife fortgeführt.
continue
Geht zum Schleifenkopf zurück. Nach dem Auswerten des Fortschaltausdrucks wird im nächsten Schritt erneut geprüft, ob die Schleife weiter durchlaufen werden soll.

Collections

Uebersicht

Eine Uebersicht über konkrete Container-Klassen findest du auf Galileocomputing JavaInsel 8 Kapitel 12.1.6.


Sorting

Zum sortieren muss ein Objekt Comparable sein. Wenn das aber nicht geht (z.B. wenn man ein und dasselbe Objekt auf verschiedene arten sortiert werden soll (ein Telefonbuch nach Nachname, Vorname, Ort, ...)), dann muss das anders gelöst werden.
Ein Beispiel:

/**
 * UserSorter
 *
 * <p>
 * Sort strategy to sort the User by field <code>name.
 * </p>
 *
 * @author mic
 *
 */
public class UserSorter
{
    public List<User> sort(List<User> list)
    {
        // get comparator
        Comparator<User> comparator = new NameComparator();

        // sort list with configured comparator
        Collections.sort(list, comparator);

        return list;
    }
}

/**
 * NameComparator
 *
 * <p>
 * Compare User field name.
 * </p>
 *
 * @author mic
 */
class NameComparator implements Comparator<User>
{
    public int compare(User o1, User o2)
    {
        String s1 = o1.getName();
        String s2 = o2.getName();
        
        // both are null
        if(s1 == null && s2 == null)
        {
            return 0;
        }

        // either of them is null
        if(s1 == null)
        {
            return -1;
        }
        if(s2 == null)
        {
            return 1;
        }

        // compare strings
        return s1.compareToIgnoreCase(s2);
    }
}

Diverses

Java-VM-Args (kann z.B. in eclipse benutzt werden [eclipse.ini oder beim Starten von eclipse])

JavaDoc

Apache Config

web.xml

Web.xml ist die Konfigurationsdatei für den Servlet-Container.

Element
load-on-startup (optional)
Wert
Ganzzahl
Beschreibung
Definiert, dass das zugehörige Servlet beim Starten der Servers mit gestartet wird. Die Ganzzahl gibt die Reihenfolge an. Wenn 0, dann ist die Reihenfolge egal. Ab Servlet-Schema 2.4 darf load-on-startup nicht leer sein (<load-on-startup/>).
Beispiel
<load-on-startup>0</load-on-startup>

JSP

Interessante Links



Interfaces

Interfaces sind im Grunde genommen abstrakte Klassen, wo ALLE Methoden abstrakt sind. Das heisst, dass eine Implementierung davon auch alle Methoden implementieren muss.
Auch Konstanten und Objekte (inkl. Instanzierung) können in Interfaces geschrieben werden. Beispiel:

public interface MyConstants
{
   /** Constant 1 */ 
   public static final String CTX_RUNTIME = "RUNTIME";
   
   /** Constant 2 */
   public static final String INDIV_ITEM = "INDIV_ITEM";

   /** Objects */
   public static final Map<String, String> myMap = new HashMap<String, String>(10); // Auch neue Objekte sind möglich

   ...
}


Naming

Gängige Benennungen der Klassen und deren Bedeutung

Factory
Fabrik
Wrapper
Wandler