Parallele und funktionale Programmierung Sommersemester Übung Abgabe bis , 10:00 Uhr
|
|
- Kai Feld
- vor 5 Jahren
- Abrufe
Transkript
1 4. Übung Abgabe bis , 10:00 Uhr Aufgabe 4.1: Thread-Sicherheit a) Wann sind Klassen korrekt? Wie kann man nicht korrekte Klassen erkennen? b) Wann sind Klassen thread-sicher? Wie kann man nicht korrekte parallele Klassen erkennen? c) Nehmen Sie zu folgender Aussage Stellung: Ein paralleles Programm, das nur thread-sichere Klassen - und diese richtig - verwendet, ist korrekt! Aufgabe 4.2: Sichtbarkeiten a) Aus welchen Gründen ist Sichtbarkeitssynchronisation bei parallelen Programmen wichtig? b) Welche Rollen spielen hierbei das Schlüsselwort volatile und das Paket java.util.concurrent.atomic? c) Welche Sichtbarkeitsprobleme treten in folgendem Programm auf? Wie kann man diese durch den Einsatz von synchronized und/oder volatile lösen? public class Unsichtbarer { private String name; private int alter; private double gewicht; public Unsichtbarer(String name, int alter, double gewicht) { this.name = name; this.alter = alter; this.gewicht = gewicht; public void umtaufen(string name) { this.name = name; public String getname() { return name; public int getalter() { return alter; public void geburtstag() { alter++; public double waage() { return gewicht; public void sport(double gewicht) { this.gewicht = gewicht; - 1 -
2 Aufgabe 4.3: Fehlerquellen a) Welche neuen Fehlerquellen sind bei der Programmierung mit mehreren Aktivitätsfäden vorhanden, die bei der Verwendung von nur einer Aktivität nicht auftreten? b) Welche Gegenmaßnahmen und Programmiermittel fallen Ihnen dazu ein? Aufgabe 4.4: Thread-sichere Liste Betrachten Sie die online gegebene Listen-Implementierung LinkedList. Diese ist unter Verwendung eines Monitor-Objekts synchronisiert und thread-sicher. Ihre Aufgabe besteht darin, mithilfe aller Ihnen bekannten Synchronisations-Möglichkeiten die kritischen Abschnitte zu verkleinern, so dass eine echte Nebenläufigkeit beim Einfügen und beim Ausgeben möglich ist. Achten Sie auch darauf, dass size() immer eine konsistente Aussage liefert (also bei Überschneidung mit einem add(type), entweder die Größe vorher oder nachher). Prüfen Sie bei Ihrer Lösung nach, ob wirklich jede mögliche Verschränkung der einzelnen add(type)-befehle in einer korrekten Liste endet. Hinweis: Laufzeitverbesserungen machen sich erst bemerkbar, wenn gleichzeitig mit size() und tostring() auf der Liste gearbeitet wird. Bonusaufgabe 4.5: Bonusaufgabe: Sichtbarkeit und Wettlaufsituation 3 Punkte In dieser Aufgabe sollen Sie das aufgeführte parallele Programm (RandomNumGen) (auch online auf der Homepage verfügbar) analysieren. Als Übung für die Klausur empfiehlt sich zunächst die manuelle Ausführung des Programms. a) Wie viele Kombinationen aus digits[0] und digits[1] können durch den Programmablauf entstehen? Begründen Sie Ihre Antwort. b) Welche Werte kann digits[2] annehmen? Begründen Sie Ihre Antwort. c) Welche Werte kann digits[3] annehmen? Begründen Sie Ihre Antwort. d) Welche Werte kann digits[4] annehmen? Begründen Sie Ihre Antwort. e) Welche Werte kann digits[5] annehmen? Begründen Sie Ihre Antwort
3 1 import java.util.concurrent.cyclicbarrier; public class RandomNumGen { 5 6 int d0, d1, d3; 7 volatile int dv2, dv4, dv5; 8 CyclicBarrier barrier = 9 new CyclicBarrier(2); 10 int[] digits = new int[6]; public class Thread1 extends Thread { 15 public void run() { 16 try { barrier.await(); d0++; 21 d1++; dv2++; d3 = 9; barrier.await(); for (int i = 0; i < 4; i++) { 32 dv4++; barrier.await(); barrier.await(); dv5 = 7; 42 catch (Exception e) { 43 //END OF run 44 //END OF Thread1 45 public int[] getdigits() { 46 d0 = 0; d1 = 0; d3 = 0; 47 dv2 = 0; dv4 = 0; dv5 = 0; 48 Thread t1 = new Thread1(); 49 Thread t2 = new Thread2(); 50 t1.start(); t2.start(); 51 try { 52 t1.join(); t2.join(); 53 digits[5] = dv5; 54 catch (Exception e) { 55 return digits; public class Thread2 extends Thread { 59 public void run() { 60 try { barrier.await(); digits[1] = d1; 65 digits[0] = d0; digits[2] = dv2; barrier.await(); digits[3] = d3; for (int i = 0; i < 4; i++) { 76 dv4++; barrier.await(); digits[4] = dv4; barrier.await(); dv5 = 5; 86 catch (Exception e) { 87 //END OF run 88 //END OF Thread2 89 //END OF RandomNumGen - 3 -
4 Bonusaufgabe 4.6: GoldenSearch 4 Punkte Implementieren Sie in der Klasse GoldenSearchImpl die findminimum-methode des GoldenSearch Interfaces und implementieren Sie in den Klassen ThreadedGoldenSearch und TaskedGoldenSearch das online verfügbare Interface ParallelGoldenSearch. a) Implementieren Sie in der Klasse GoldenSearchImpl die sequentielle Berechnung eines lokalen Minimums einer Function durch Golden Section Search ( org/wiki/golden_section_search). b) Implementieren Sie in der Klasse ThreadedGoldenSearch die Interface-Methode findminimum mithilfe von nthreads expliziten Threads, von denen jeder einen gleichgroßen Teil der Funktionen zur Verarbeitung erhält. Zur Berechnung des Minimums einer Funktion soll das übergebene GoldenSearch-Objekt benutzt werden. c) Implementieren Sie in der Klasse TaskedGoldenSearch die fehlende Interface-Methode mithilfe eines newfixedthreadpool. Die Berechnung jeder einzelnen Funktion soll als ein eigenes Callable-Objekt ausgeführt werden. Das Callable-Objekt soll zur Berechnung des Minimums das übergebene GoldenSearch-Objekt benutzten. d) Welche der beiden Parallelisierungsvarianten ist bei einer hohen Anzahl an Funktionen langsamer? Begründen Sie Ihre Entscheidung. Beantworten Sie die Frage in ihrer Theorieabgabe (pfp_abgabe_4.pdf). Hinweis: Die Default-Konstruktoren der implementierten Klassen sollten keine Parameter benötigen. Nutzen Sie EPSILON in der Abbruchbedingung der Rekursion. Bonusaufgabe 4.7: Gemüsefabrik 3 Punkte In dieser Aufgabe sollen die einzelnen Maschinen einer Fabrik für Gemüsekonserven mittels je eines Thread simuliert werden. Laden Sie sich dazu zunächst Vegetables.zip herunter. Es gibt verschiedene Maschinen, die alle von der abstrakten Klasse FactoryActor erben und folgende Grundfunktion haben: Eine Zutat wird in den Eingabeschacht abgelegt (send()). Die Maschine kann diese Zutat entweder verarbeiten (process()) und das Verarbeitungsergebnis weiterleiten oder die Eingabe ohne Verarbeitung direkt an die nächste angeschlossene Maschine weiterleiten. Welche Aktion durchgeführt wird entscheidet die Methode shouldprocess(), die dazu eine Liste mit zu verarbeitenden Zutaten durchsucht. Ferner gibt es eine Instanz der Klasse FactoryExit, die als Senke aller Produkte gilt. Die bereits vorgegebenen Maschinen haben verschiedene Funktionen: Chopper zerkleinern eine Zutat (z.b. Tomaten zu Tomatenmark). Mixer füllen zwei verschiedene Zutaten zusammen ab. Als Eingabe kommen in zufälliger Reihenfolge Erbsen (Peas), Möhren (Carrots), Bohnen (Beans) und Tomaten (Tomatoes) vor, die am Eingang der Maschine entry eingeworfen werden. Jede Zutat hat einen eindeutigen Typ-Code und implementiert Ingredient, so dass der Code über gettype() erfragt werden kann. Eine Kette aus den obigen Maschinentypen soll diese Zutaten zu zwei verschiedenen Produkten verarbeiten: - 4 -
5 Tomaten und Bohnen werden zu Bohnen in Tomatensoße (die Tomaten müssen dazu vorher zu Tomatenmark verarbeitet werden). Möhren und Erbsen werden zu Möhren-Erbsen-Mix. a) Machen Sie sich mit den vorgegebenen Klassen, besonders mit dem Konstruktor von FactoryActor und der Methode shouldprocess(), vertraut. Überlegen Sie sich dann, wie viele Instanzen der Verarbeitungsmaschinen Sie benötigen und wie diese miteinander verbunden werden müssen. Instantiieren Sie die nötigen Objekte in VegetableFactory.main() und verwenden Sie setnext() zur korrekten Verbindung. Weisen Sie der Variable entry die erste Maschine zu, in der Zutaten landen sollen und denken Sie daran, die letzte Maschine mit exit zu verbinden. b) Implementieren Sie nun die noch fehlenden Methoden send() und run() in FactoryActor, so dass folgende Funktionalität gegeben ist: send() wird von anderen FactoryActor-Instanzen aufgerufen, um eine Zutat weiterzugeben. In dieser Methode darf also keine Verarbeitung stattfinden, da sie von anderen Threads aufgerufen wird. Die run()-methode implementiert die Logik jeder Maschine: Ist eine Zutat angekommen, muss diese entweder verarbeitet oder direkt an die nächste Maschine (next) weitergeleitet werden. Verwenden Sie zur Synchronisation zwischen send() und run() eine LinkedBlockingQueue. Der Thread soll sich beenden, wenn VegetableFactory.active auf false wechselt. Um dies regelmäßig zu prüfen, sollten Sie statt take() die Methode poll() mit einem sinnvollen Timeout (z.b. eine Sekunde) verwenden. c) Starten Sie alle Threads. Es sollten nur korrekte Produkte erzeugt werden und sich das ganze Programm nach FactoryExit.ENOUGH Produkten korrekt beenden. send() shouldprocess()? process() next.send() FactoryActor Schematische Darstellung eines FactoryActor. Tomate: CC-BY-NC: Fir0002/Flagstaffotos Punkte
Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr
3. Übung Abgabe bis 10.11.2015, 10:00 Uhr Aufgabe 3.1: Java-Synchronisation a) An welchen Stellen im Code kann das Schlüsselwort synchronized verwendet werden? b) Wie nennt sich die Synchronisations-Art,
MehrParallele und funktionale Programmierung Wintersemester 2013/ Übung Abgabe bis , 16:00 Uhr
3. Übung Abgabe bis 15.11.2013, 16:00 Uhr Aufgabe 3.1: Sichtbarkeiten a) Aus welchen Gründen ist Sichtbarkeitssynchronisation bei parallelen Programmen wichtig? b) Welche Rollen spielen hierbei das Schlüsselwort
MehrParallele und funktionale Programmierung Wintersemester 2013/ Übung Abgabe bis , 16:00 Uhr
. Übung Abgabe bis 08.11.013, 16:00 Uhr Aufgabe.1: Erreichbarkeitsgraph Gegeben sei folgendes paralleles Petri-Netz für eine einfache Fußgängerampelschaltung: a) Zeichnen Sie den vollständigen Erreichbarkeitsgraphen
MehrLebenszyklus von Threads
Threads Umgangssprachlich Faden, Diskussionsfaden, Gewinde, Faser, Garn, roter Faden Threads ermöglichen Nebenläufigkeit (parallele Ausführung von Anwendungsteilen). Typisch für Threads ist,dass sie zu
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrDr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt!! 26.03.2014 FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert von Methoden! String Fehlercode als String! int Fehlercode
MehrJava I Vorlesung Nebenläufigkeit
Java I Vorlesung 10 Nebenläufigkeit 28.6.2004 Threads Synchronisation Deadlocks Thread-Kommunikation Innere Klassen Anonyme Klassen Nebenläufigkeit http://java.sun.com/docs/books/tutorial/essential/threads/
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 07: Nebenläufigkeit Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in die Nebenläufigkeit und Java Thread Konzept: Motivation
MehrKlausur Software-Entwicklung März 01
Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrLaborskript Verteilte Systeme
Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrInstitut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrLösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am
Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
MehrWintersemester 2009/10 Helmut Seidl Institut für Informatik TU München
Informatik2 Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Nebenläufigkeit in Java; Funktionales Programmieren mit OCaml :-) 2 1 Threads
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrMatrikelnummer: 1 Aufgabe 1: Quickies (30 Punkte) a) Wird das folgende Programm von einem Java-Übersetzer ohne Beanstandungen übersetzt? Falls nicht,
Wir begrüßen Sie zur Klausur zum Kurs 1618 " Einführung in die objektorientierte Programmierung. Beachten Sie: Dies ist NICHT die Klausur zum Kurs 1814. Bitte lesen Sie die folgenden Hinweise sorgfältig
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrAufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
MehrSoftwaretechnik 1 Übung 5
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Übung 5 2.7.29 Aufgabe 1a) Zeichnen Sie die komplette Vererbungshierarchie der Klasse BufferedOutputStream als UML- Klassendiagramm.
MehrBeispiel für überladene Methode
Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter
MehrCS1005 Objektorientierte Programmierung
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Funktionen / statische Methoden - Definition - Verwendung - Ausführung Seite 1 Th Letschert Funktionen: Definition und Verwendung
MehrAllgemeine Informatik II SS :30-11:30 Uhr
TU Darmstadt FB Informatik Prof. J. Fürnkranz Semestralklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 20.07.2005 09:30-11:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
MehrAusnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrPrüfung Softwareentwicklung II (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrDie Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
MehrTesten nebenläufiger Objekte
Testen nebenläufiger Objekte Threads in Java Julian Lambertz Seminar Tests in Informatik und Statistik im SS 2004 Universität Ulm J.L., Juni 2004 1 Themenüberblick Einleitung Begriff der Nebenläufigkeit
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrProgrammieren II. Nebenläufigkeit. Vorlesung 9. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Threads. Kritische Bereiche
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 24 Threads Kritische Bereiche Reales Beispiel 2 / 24 Nebenläufigkeit Moderne Betriebssysteme unterstützen das Prinzip der
MehrInstitut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung Prof. R. Westermann Endterm Klausur zu Informatik I 20. Februar 2010 ˆ Die Arbeitszeit beträgt 120
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrAusnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren
Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,
MehrJava Concurrency Utilities
Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrAllgemeine Informatik II SS :30-13:30 Uhr
TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer
MehrNebenläufigkeit mit Java
Nebenläufigkeit mit Java Einheit 01: Einführung in das Java-Threadkonzept Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Organisatorisches Ziele, Aufbau und Inhalte Zielgruppe,
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 10. Blatt Für den und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 10. Blatt Für den 30.6. und 1.7.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrÜbung Programmierung WS 2007/08 - Blatt 6
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli 2001 Stefan Holland Informatik II Hinweise: Klausur Verwenden Sie für Ihre Lösungen ausschließlich den
MehrOCP Java SE 8. Lambda
OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur
MehrUniversität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer
Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.
MehrKlassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrOCP Java SE 8. Lambda
OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Virtuelle Methodentabellen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Struktur der Objektorientierung Ein wenig Java: public
MehrKlausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte
Universität Düsseldorf Mathematisch-naturwissenschaftliche Fakultät Institut für Informatik Prof. Dr. Michael Schöttner Florian Klein Kevin Beineke Janine Haas Klausur zur Vorlesung Informatik 1 im Wintersemester
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
MehrParallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:
Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:
MehrPraktikum aus Softwareentwicklung 2, Stunde 5
Praktikum aus Softwareentwicklung 2, Stunde 5 Lehrziele/Inhalt 1. Threads Threads Threads sind parallele, oder auf Rechnern mit nur einer CPU quasi-parallele, Programmabläufe in Java. Sie können beispielsweise
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrAusnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung
MehrAusnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung
MehrOOP: Nebenläufigkeiten Threads. Dipl.-Inform. Arnold Willemer
OOP: Nebenläufigkeiten Threads Dipl.-Inform. Arnold Willemer arnold.willemer@hs-flensburg.de Schlafen für Profis Die C-64-Lösung kocht und blockiert den Prozessor while (!fertig) // nichts tun: busy waiting
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrJAVA 05: Objektorientierte Konzepte
Lernkartenkurs JAVA 05: Objektorientierte Konzepte panitz Zusammenfassung Dieser Kurs beschäftigt sich mit Grundkonzepten der objektorientierten Programmierung. Was sind Klassen und Objekte? Wie sehen
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/
MehrII.4.4 Exceptions - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrStatische und Nichtstatische Methoden Properties/ Eigenschaften
Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische
MehrNebenläufige Programmierung I
Nebenläufige Programmierung I Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 07/03 Ziele 2 Grundlegende Begriffe der nebenläufigen Programmierung verstehen lernen
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
MehrInformatik II Übung 5
Informatik II Übung 5 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 28.3.2018 Carina Fuss 28.3.2018 1 Übung 5 Administratives/Tipps zu Eclipse Nachbesprechung Übung 4 kurze Demo zu Stacks Java Pakete Call
MehrInstitut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Mai 2018 Programmieren II 11. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrIT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrProgrammierung für Mathematik HS10 Übung 8
Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS10 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code
MehrBeispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 14: Generics Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Generische Klassen (Generics) Motivation Java Typ-Prüfung Warum also Generics? Generische
Mehr