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

2018-05-14: Multi-Threading II, Regular Expressions

Content

  • Synchronisation of Threads
  • wait() and notify()
  • Regular Expressions

Materials

Questions

  • Multi-Threading

    • What does synchronization mean in the context of threads?
    • Why / when is synchronization relevant? Give examples
    • How do you accomplish synchronization in Java 1 and 5+?
    • What are the problems if you synchronize too much code?
    • What are monitors?
    • How can threads communicate and wait for each other?

Fragen

  • Reguläre Ausdrücke

    • 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

Questions

  • Regular Expressions

    • Which predefined classes do exist?
    • How can you define your own class?
    • How can you replace patterns in text?
    • When do you use the classes Pattern and Matcher instead of String.matches?

2018-05-07: Multi-threading

Content

  • Concurrence
  • 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.

Questions (English)

  • What is the difference between multi tasking and multi threading?
  • Give examples for both
  • How can you implement and launch threads in parallel using Java? (2 alternatives)
  • How does a thread terminate?
  • How can you wait for another thread to terminate?
  • What is synchronization? When is synchronization required?
  • How can you synchronize Java code (2 alternatives)
  • What might be the problems when synchronizing code?
  • What is the goal of a monitor?

2018-04-30: Annotations, JavaDocs

Content

  • Recap Reflection
  • Annotations
  • JavaDocs

Materials

Fragen (Deutsch)

  • Annotationen

    • 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 Werte mehrwertige "Attribute" setzen?
    • Wie kann man die Annotations (einschließlich derer Werte) einer Klassen auslesen?
    • Welche Regeln gibt es für das Erzeugen von JavaDocs?

  • JavaDocs

    • Was haben JavaDocs mit Annotationen gemeinsam? Was unterscheidet sie?
    • Was kann/soll mit JavaDocs dokumentiert werden?
    • Welche HTML-Elemente sollten Sie nicht verwenden?
    • Was macht der JavaDoc-Compiler?

Questions (English)

  • Annotationen

    • What are annotations? What are typical use cases
    • How do you define annotations?
    • How do you use annotations?
    • Annotations and interfaces both define abstract methods. What are the differences with respect to these methods?
    • When do annotations have to be annotated themselves? Give two examples
    • How to evaluate annotations?

  • JavaDocs

    • What are the rules for writing JavaDocs? What should be commented with JavaDocs?
    • Which HTML elements should not be used in JavaDocs?
    • What does the JavaDoc compiler actualy do?

2018-04-24: Reflection, Introspection

Content

  • Assertion
  • Reflection, Introspection

Materials

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?

Questions (English)

  • How can Reflection been used to decide on runtime(!) which specific class a program should work with?
  • Which method returns all methods of a given class, that are declared on the class - regardless whether these methods are private or public?
  • How to invoke a method if you do not know the method's name during development? How do you  make sure that you pick the right method if there are many methods with the same name?
  • How does Eclipse use Introspection?

2018-04-16: Inheritance, Error handling

Content

  • Inheritance, casting
  • Error handling in Java
  • Assertions (next lecture)

Materials

Fragen (deutsch)

  • 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?

Questions (english)

  • Inheritance: see other lecture
  • What are the option to handle errors?
  • Is it possible to have a try-finally-block (without catch)?
  • What do you have to consider if working wiht more than one catch-block?
  • What are the most important rules for error handling?
  • What are the differences between errors and exceptions?
  • Why does the compiler does not insist on handling NullPointerException?
  • What is an assertion? When do you use assertions? What are the differences to exception?

2018-04-09: B-trees 2, Enumerations

Inhalt

  • Enums
  • Interfaces

Unterlagen

Fragen (Deutsch)

  • 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?
  • Wie viele Interfaces keine eine Java-Klasse implementieren? Von wie vielen 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?

Questions (English)

  • What are use cases for enumerations? What are the advantages of enumerations?
  • What are interfaces? When are they used?
  • How many interfaces can a class implement? From how many classes can a class inherit?
  • What is a software component? What is the advantage of a component oriented architecture? How do interfaces support component oriented design?
  • What is inheritance? What is inherited? What not?
  • What is casting?
  • How can you prevent that a method of a super class is overwritten in an inheriting class?
  • What do abstract classes and interfaces have in common?
  • What is the difference between abstract classes and interfaces? When do you use which?
  • Is it possible to define attributes on interfaces?
  • Is "downcasting" possible? What might happen?

2018-03-26: Trees, AVL trees, B trees

Topic

  • AVL-trees
  • B-trees (üa 1)

Materials

  • Initiates file downloadScript
  • corresponding assignments: #7, #8

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 Knoten? 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?

Questions

  • What are trees? What's the difference to linear lists?
  • Define the terms

    • Degree
    • Height
    • Niveau
    • Leaf
    • Depth
    • Binary tree
    • Binary search tree

  • What is the stronger requirements, height balance or completeness?
  • How does the binary search tree  look like when inserting 6, 2, 9, 11, 5, 4, 3, 8, 10?
  • How does the AVL tree look like when inserting the same numbers?
  • When does reorganization has to happen?
  • When is left rotation used for this reorganization? When left-right rotation?
  • How to delete a node from a binary search tree?
  • Given is the following tree

    • Write on any node

      • Niveau
      • Degree
      • Balance

    • Is the tree height balanced?
    • Is the tree complete?

  • Can it happen that a AVL tree is not height balanced after a single or double rotation?

2018-03-19: Hash function, trees

Content

  • Hash functions
  • Trees (questions see next lecture=

Materials

  • Initiates file downloadLecture notes
  • Initiates file downloadExample Code
  • Bitte beachten Sie den Mindmailer. Er hilft Ihnen, den Stoff schnell und mit wenig Zeitaufwand zu wiederholen und sich so auf die Klausur vorzubereiten.

Fragen (Deutsch)

  • 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?

Questions (English)

  • What is a hash function? What a hash value?
  • What are properties of a good hash fucntion?
  • Give examples of where hash functions as being used
  • Why should the equals and the hashCode method always be implemented together?

2018-03-15: equals(), == und hashCode()

Content

  • Passing values by copy and reference
  • Object identity, equals() and ==
  • Implementing equals methods

Unterlagen

Fragen 

  • Datentypen

    • Wie unterscheidet sich die Übergabe von primitiven und nicht primitiven Datentypen? Welche Folgen kann dies haben?

  • == und equals()

    • 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)?

  • HashCode

    • 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?

Questions

  • Data types

    • What are the differences when passing a primitive and a complex data type to a method of another class?

  • == and equals

    • How do you compare the identity of objects?
    • When do you use == and when equals?
    • What is the signature of an equals-method?
    • How do you implement an equals method? What does the method return if the object is null?

2018-03-12: Inner Classes

Content

  • Introduction
  • Inner classes

Materials

Fragen (DE)

  • 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.

Questions (EN)

  • What are inner classes?
  • What are the differences between member classes, local and anonymousinner classes?
  • Which modifiers are allowed?
  • Why are anonymous inner classes are called "anonymous"? Give examples for the usage of inner classes.