home  |  suche  |  kontakt/johner  |  institut  |  hinweise 
studierende  |  tech-docs  |  blog  |  mindmailer 

Übersicht

2012-01-27: JCF II, Grafen, Klausurvorbereitng

Inhalt

  • Java Collection Framework JCF II: API, Queue
  • Grafen: Allgemeines, (un)gerichtete, (un)gewichtete, Implementierung mit Adjazenzmatrix und JCF
  • PageRank
  • Klausurvorbereitung

Unterlagen

Fragen:

  • Was sind gerichtete und gewichtete Grafen?
  • Was drückt der Dämpfungsfaktor aus beim Page-Rank-Algorithmus aus?
  • Wie lässt Google das Gleichungssystem zur Berrechung des Page-Ranks?
  • Was ist der höchstmögliche Pagerank eines Webauftritts mit drei Seiten? Wie kann dieser erreicht werden (Beispiel)?
  • Wie erhöht man den Pagerank einer Seite?

Ich drücke Ihnen für die Klausur die Daumen. Wie Sie mich in der Vorbereitungsphase bei Fragen erreichen, wissen Sie ja...

2012-01-20: Java Collection Framework

Inhalt

  • Java Collection Framework Teil
  • Comparable
  • Abbildung von 1:n-Beziehungen

Unterlagen

Fragen

  1. Nennen Sie Interfaces und Implementierende Klassen des Java Collection Frameworks. Geben Sie auch die Klassenhierarchie an.
  2. Wie bildet man eine 1:n Beziehung mit Hilfe des JCF ab?
  3. Wie lauten die wichtigsten Methoden auf den Interfaces?
  4. Wie bildet man eine 1:n Beziehung mit Hilfe der Java-Klassen Set, List und Map ab? Wann nutzt man welches Interface?
  5. Welche Voraussetzung muss eine Klasse erf�llen, damit ihre Instanzen in ein TreeSet eingef�gt werden k�nnen?
  6. Welche Implementierungen des Interfaces Queue kennen Sie? Wie unterscheiden sich diese?
  7. Es gibt bei Queues jeweils zwei M�glichkeiten, um Elemente hinzuzuf�gen, zu l�schen und abzufragen. Nennen Sie die jeweiligen Methoden und beschreiben Sie die Unterscheide der jeweiligen Methodenpaare.

2012-01-13: Dynamische Arrays, Hashfunktionen

Inhalt

  • "Dynamische" Arrays
  • HashSets

Inhalt

Fragen

  • Welche Methoden bräuchte ein dynamisches Array?
  • Welche Vorteile, welche Nachteile hat die Abbildung einere 1:n Beziehung als verkettete Liste? Welche als Array
  • Wie sieht eine verkettete Liste im UML Klassendiagramm aus?
  • Was ist eine Hash-Funktion? Welche Forderungen stellt man an sie?
  • Wie nutzen HashSets Hash-Funktionen?
  • Welche Formen der Überlaufbehandlung gibt es?
  • Was zeichnet eine gute Sondierungsfunktion aus?
  • Erkläre, wie Objekte in ein HashSet eingefügt, gelöscht und gesucht werden.

2011-12-23: Reguläre Ausdräcke, "Objektsammlungen"

Inhalt

  • Reguläre Ausdrüke
  • JaxP

Inhalt

Fragen

  • Welche Zeichenklassen gibt es?
  • Wie kann man eigene Zeichenklassen definieren?
  • Wie ersetzt man mit regulären Ausdrücken Zeichenketten?
  • Wann setzt man die Klasse Pattern ein?
  • Wie kann man Teilausdrïücke definieren und auf diese zugreifen?
  • Anmerkung: Wichtig bei den regulären Ausdrücken ist es, die Übungsaufgaben zu bearbeiten, als die Fragen zu beantworten

20011-12-16: Multithreading II

Inhalt

  • Synchronisation von Threads
  • Mehrfachausführung von Threads
  • wait() und notify()

Unterlagen

  • Vorlesungsmitschrieb
  • Beispielcode
  • Nachtrag:
    • Warten auf alle Threads des Pools mit pool.awaitTermination(...);
    • Fehler im Code: Monitor müsste gleich sein, Aufruf der Methode war außerhalb des synchronized-Bereichs.

Fragen

  • Was versteht man unter Synchronisierung von Threads?
  • Weshalb kann diese Synchronisierung wichtig sein? Nennen Sie ein Anwendungsbeispiel?
  • Wie kann man Synchronisation in Java erreichen? Beschreibe dies für Java 1.x und Java 5.x.
  • Welche Problem können auftreten, wenn man zuviele Codebereiche synchronisiert?
  • Welche Rolle spielt dabei der sogenannte Monitor?

2011-12-09: Multithreading

Inhalt

  • Nebenläufigkeit
  • Threads

Unterlagen

Fragen (zum Teil erst nach der nächsten Stunde beantwortbar)

  • Wie unterscheiden sich die Nebenläufigkeit verschiedener Programme und die Nebenläufigkeit innerhalb eines Programmes?
  • Wie bezeichnet man diese verschiedenen Nebenläufigkeiten?
  • Weshalb braucht man Nebenläufigkeit innerhalb eines Programmes? Nennen Sie Beispiele
  • Wie erreicht man bei Java Nebenläufigkeit? Welche beiden Möglichkeiten kennen Sie? Welche Klassen stellt Java hierzu zur Verfügung?
  • Wie endet ein Thread?
  • Wie kann man in der Methode, welche einen Thread startet, warten, bis der Thread zu Ende ist?
  • Was versteht man unter Synchronisierung von Threads?
  • Weshalb kann diese Synchronisierung wichtig sein? Nennen Sie ein Anwendungsbeispiel?
  • Wie kann man Synchronisation in Java erreichen? Beschreibe dies für Java 1.x und Java 5.x.
  • Welche Problem können auftreten, wenn man zuviele Codebereiche synchronisiert?
  • Welche Rolle spielt dabei der sogenannte Monitor?

Hinweis: Regelmäßiges Nutzen des Mindmailers hilft Ihnen, den Stoff besser zu behalten und bei gleichem oder gar niedrigeren Lernstress eine bessere Klausur zu schreiben.

2011-12-02: Annotations, JavaDocs

Inhalt

  • Wiederholung Reflection
  • Annotations
  • JavaDocs

Unterlagen

Fragen

  • Was sind Annotations?
  • Wie definiert man sie?
  • Wie setzt man sie ein?
  • Weshalb kann/muss man Annotations selbst annotieren? Nennen Sie zwei Beispiele.
  • Wie verwendet man Annotations?
  • Wie kann man die Annotations (einschließlich derer Werte) einer Klassen auslesen?
  • Welche Regeln gibt es für das Erzeugen von JavaDocs?
  • Was kann/soll mit JavaDocs dokumentiert werden?
  • Welche HTML-Elemente sollten Sie nicht verwenden?
  • Was macht der JavaDoc-Compiler?

2011-11-25: Reflection, Introspection

Inhalt

  • Reflection, Introspection

Unterlagen

Fragen

  • Wie kann man über Reflection erst zur Laufzeit entscheiden, welche konkrete Klasse/Implementierung genutzt wird?
  • Wie heißt die Methode, um alle auf einer Klassen deklarierten Methoden auszulesen und zwar unabhängig davon, ob diese private oder public sind?
  • Wie ruft man eine Methode aus, von der man erst zur Laufzeit erfährt, wie sie heißt? Wie stellt man sicher, dass die richtige ausgewählt ist? Es können ja mehrere Methoden den gleichen Namen haben...
  • Inwiefern nutzt Eclipse Introspection? Was ist Introspection?
  • Wie kann man Reflection einsetzen, wenn man mit Interfaces arbeitet, zur Entwicklungszeit aber noch nicht festlegen kann, welche Implementierungen es geben wird?

2011-11-18: Assertion, Logging, Wiederholung

Inhalt

  • Wiederholung Errors, Exceptions
  • Assertions
  • GreogorianCalendar, SimpleDateFormat
  • Logging

Unterlagen

Fragen:

  • Wie schreibt man eine Assertion?
  • Wozu setzt man Asserstions ein? Worin unterscheidet sich deren Verwendung von Exceptons?
  • Wie erzeugt man das Datum 3. Januar 2012? Welche Klasse verwendet man dazu?
  • Wie kann man von dieser Datum 2 Jahre und 7 Tage abziehen?
  • Wie gibt man das Datum im Format 03/Jan/2010 aus?
  • Welchen Vorteil hat die Verwendung eines Loggers gegen�ber System.out.println?
  • Was sind Log-Levels?
  • Welche Funktion haben (die Interfaces) Filter und Formatter beim Logging?

2011-11-11: Fehlerbehandlung

Inhalt

  • Fehlerbehandlung in Java
  • Assertions

Unterlagen

Fragen

  • Wie werden Methoden bei Ihrem Aufruf behandelt, die Fehler werfen?
  • Wann ist ein Konstrukt try{..} finally{...} möglich, also ohne catch-Block?
  • Was müssen Sie im Bezug auf die Reihenfolge der Fehlerbehandlung beachten, wenn Sie ein try-Block mit mehreren catch-Blöcken haben?
  • Welche Merkregeln zur Fehlerbehandlung kennen Sie?
  • Welche Klassen kennen Sie, die von Throwable erben?
  • Was ist der Unterschied zwischen Exceptions und Errors?
  • Weshalb muss man eine ClassCastException nicht fangen? Was ist eine ClassCastException?
  • Wie schreibt man eine Assertion?
  • Wozu setzt man Assertions ein? Worin unterscheidet sich deren Verwendung von Exceptions?

2011-11-04: Enums, Interfaces, Vererbung

Inhalt

  • Enums
  • Interfaces
  • Abstrakte Klassen
  • Vererbung
  • Modifier

Unterlagen

Fragen

  • Für was setzt man enums ein, was sind die Vorteile? Nennen Sie ein Beispiel für eine interne und externe enum.
  • Was versteht man unter Java Interfaces? Wann setzt man Interfaces ein?
  • Wieviele Interfaces keine eine Java-Klasse implementieren? Von wievielen Klassen kann sie erben?
  • Was ist eine Softwarekomponente?
  • Welche Vorteile bietet ein komponentenorientierter Entwurf?
  • Wie helfen Interfaces beim komponentenorientierten Entwurf?
  • Wieso spricht man in diesem Zusammenhang oft von Design-By-Contract?
  • Was versteht man unter Vererbung? Was wird vererbt?
  • Wie heißt das Schlüsselwort in Java?
  • Was versteht man unter Casting?
  • Wie verhindert man, dass eine Methode einer Superkasse überschrieben wird?
  • Wann setzen Sie abstrakte Klassen, wann Interfaces ein?
  • Wie unterscheiden sich abstrakte Klassen von Interfaces?
  • Welche Gemeinsamkeiten haben sie?
  • Kann man auf Interfaces Attribute definieren?
  • Werden Konstruktoren mitvererbt?
  • Was kann beim "Downcasting" passieren?

2011-10-27: B-Bäume

Inhalt

  • B-Bäume

Unterlagen

Fragen

  • Wie unterscheiden sich B-Bäume von Binärbäumen?
  • Wie sind B-Bäume charakterisiert?
  • Wie fügt man Elemente ein, beschreiben Sie die Reorganisation beim Überlauf?
  • Welche Regeln gibt es, die man beim Löschen von Elementen aus einem B-Baum beachten muss?
  • Beschreiben Sie, wie die B-Bäume Anwendung bei Datenbanken finden.

2011-10-21: Bäume, AVL-Bäume

Inhalt

  • Bäume
  • Binäre Suchbäume
  • AVL-Bäume

Unterlagen

Fragen

  • Was sind Bäume? Nennen Sie Beispiele? Wie unterscheiden sie sich von linearen Listen? Welche Gemeinsamkeiten haben Sie mit diesen?
  • Definieren Sie die folgenden Begriffe
    • Grad
    • Höhe
    • Niveau
    • Blatt
    • Tiefe
    • Binärbaum
    • Vielwegbaum
    • Binärer Suchbaum
  • Was ist die stärkere Forderung, die nach Höhenbilanziertheit oder die nach Vollständigkeit?
  • Zeichnen Sie einen binären Suchbaumbaum, in den die Zahlen 6, 2, 9, 11, 5, 4, 3, 8, 10 eingefügt werden. Wie sieht der Baum aus, wenn es sich um einen höhenbilanzierten Baum handelt?
  • Wann muss ein hähenbilanzierter binärer Suchbaum reorganisiert werden?
    • Wann und wie findet diese Reorganisation durch Linksrotation statt?
    • Wann und wie findet diese Reorganisation durch Rechts-Linksrotation statt?
  • Wie löscht man aus einem Binärbaum Konten? Unterscheiden Sie folgende Fälle
    • Knoten ist Blatt
    • Knoten hat ein Kindelement
    • Knoten hat zwei Kindelemente
  • Gegeben sei der unten gezeigte Baum.
    • Schreiben Sie an jeden Knoten
      • Niveau
      • Grad
      • die Differenz der Grade der Teilb?ume
    • In welcher Reihenfolge werden die Knoten durchlaufen bei
      • Pre-Order
      • Post-Order
      • In-Order
    • Ist der Baum höhenbilanziert?
    • Ist der Baum vollständig?
  • Wie lauten die Regeln für das Einfügen von Elementen in AVL-Büume?
  • Kann es passieren, dass nach dem Einfügen und Anwenden der Regeln, der AVL-Baum nicht höhenbilanziert ist?

2011-05-20: Hashfunktion, GregorianCalendar

Inhalt

  • Hashfunktion
  • Kalender

Unterlagen

Fragen

  • Was ist eine Hashfunktion?
  • Welche Forderungen stellt man an sie?
  • Wo werden Hashfunktionen eingesetzt?
  • Welche bekannten Algorithmen gibt es?
  • Weshalb sollen die hashCode und die equals Methode immer gemeinsam implementiert werden?
  • Mit welchen Klassen arbeitet man, um Datum/Zeitwerte zu verarbeiten und auszugeben?

2011-10-10: equals() und ==

Inhalt

  • Werteübergabe
  • Objektidentität, equals() und ==
  • Implementieren eigener equals()-Methode

Unterlagen

Fragen

  • Wie unterscheidet sich die Übergabe von primitiven und nicht primitiven Datentypen? Welche Folgen kann dies haben?
  • Wie prüft man die Identitat von Objekten. Wann kommt die equals()-Methode, wann == zum Einsatz?
  • Wie implementiert man eine equals()-Methode? Was gibt diese Methode zurück, wenn mit einem null-Objekt verglichen wird?
  • Welchen Datentyp muss die equals()-Methode als Übergabeparameter haben (um die Default equals()-Methode zu überschreiben)?

2011-10-07: Innere Klassen

Inhalt

  • Einführung
  • Innere Klassen

Unterlagen

Fragen 

  • Was sind innere Klasse?
  • Wie unterscheiden sich innere, lokale und anonyme Klassen? Wo im Code können diese definiert werden? Bei welchen sind Modifier erlaubt?
  • Was ist bei anonymen Klassen anonym? Wie definiert man sie? Nennen Sie Beispiele für den Einsatz anonymer Klassen.