Trotz Java agil entwickeln. David Burkhart, Marc Philipp XP Days Germany 2014

Größe: px
Ab Seite anzeigen:

Download "Trotz Java agil entwickeln. David Burkhart, Marc Philipp XP Days Germany 2014"

Transkript

1 Trotz Java agil entwickeln David Burkhart, Marc Philipp XP Days Germany 2014

2 2 The Road to Lambda... Java

3 3 Java 8 Intro

4 4 Demo SortierungDemo1-9.java

5 5 FuncDonal Interface = Interface mit genau einer Methode Beispiele: Comparator Runnable Callable FileFilter

6 6 Lambda- Ausdruck = Kurzschreibweise einer anonymen ImplemenDerung eines FuncDonal Interface Comparator<Person> comparator = new Comparator<Person>() public int compare(person a, Person b) { return a.getnachname().compareto(b.getnachname()); ; Comparator<Person> comparator = (a, b) - > a.getnachname().compareto(b.getnachname());

7 7 Lambda- Schreibweise Parameterliste - > Body (Person a, Person b) - > { return a.getnachname().compareto(b.getnachname()); (a, b) - > { return a.getnachname().compareto(b.getnachname()); (a, b) - > a.getnachname().compareto(b.getnachname()) a - > a.getnachname() () - > a.getnachname()

8 8 Methoden- Referenzen Schema Beispiel Äquivalenter Lambda- Ausdruck Klasse::staDscheMethode Math::abs x - > Math.abs(x) Klasse::instanzMethode Person::getNachname p - > p.getnachname() variable::instanzmethode eineperson::getnachname () - > eineperson.getnachname() Klasse::new Person::new () - > new Person()

9 9 Default- Methoden = An Interface deklarierte Methode mit Default- ImplemenDerung Vorteil: ImplemenDerungen müssen nicht angepasst werden Beispiele: List::sort Iterable::forEach Comparator::reversed

10 10 StaDsche Methoden in Interfaces möglich Beispiel: Comparator.comparing(Person::getNachname);

11 AnnotaDon für Interfaces Compiler überprüb, ob das Interface genau eine abstrakte Methode deklariert Compile- interface MyInterface { void firstmethod(); void secondmethod(); Invalid '@FuncDonalInterface' annotadon; MyInterface is not a funcdonal interface

12 12 Fragen zur Intro?

13 13 Java 8 java.udl.funcdon Standard FuncDonal Interfaces

14 14 Vier Familien von FuncDonal Interfaces interface Function<T,R> { R apply(t t); interface Predicate<T> { boolean test(t t); interface Supplier<T> { T get(); interface Consumer<T> { void accept(t t);

15 15 Frage & Übung zu Supplier interface Function<T,R> { R apply(t t); interface Predicate<T> { boolean test(t t); interface Supplier<T> { T get(); interface Consumer<T> { void accept(t t); SupplierFrage SupplierUebung

16 16 Übung zu Consumer interface Function<T,R> { R apply(t t); interface Predicate<T> { boolean test(t t); interface Supplier<T> { T get(); interface Consumer<T> { void accept(t t); ConsumerUebung

17 17 Übung zu Predicate interface Function<T,R> { R apply(t t); interface Predicate<T> { boolean test(t t); interface Supplier<T> { T get(); interface Consumer<T> { void accept(t t); PredicatesUebung

18 18 Übung zu Function interface Function<T,R> { R apply(t t); interface Predicate<T> { boolean test(t t); interface Supplier<T> { T get(); interface Consumer<T> { void accept(t t); FunctionsUebung

19 19 Java 8 java.udl.streams R.I.P. For- Loop

20 20 Demo StreamDemo1Intro.java

21 21 java.util.stream.stream list.stream().filter( ).map( ).sorted().foreach( ) Bild:

22 22 java.util.stream.stream Create Intermediate Intermediate Intermediate Terminal Intermediate Lazy (Auoau der Pipeline) Liefert Stream Terminal Stößt Auswertung an Liefert Ergebnis

23 23 PrimiDve Streams Interfaces IntStream, LongStream, DoubleStream SummaryStatistics min, max, sum, count, average OperaDonen IntSupplier, IntConsumer, IntPredicate, IntFunction Long Double

24 24 Übung StreamAufgabe1

25 25 java.util.stream.stream Stateless Jedes Element wird für sich betrachtet filter map reduce Stateful Es müssen alle Elemente gesamt betrachtet werden distinct sorted Short- CircuiDng Nicht alle Elemente müssen betrachtet werden anymatch limit

26 26 java.util.stream.stream Sicht auf die Daten vgl. Iterator Möglicherweise unbegrenzt Nur einmal verwendbar SequenDell oder parallel

27 27 Stream Erzeugen collection.stream Stream.generate (Supplier) Stream.iterate(seed, Function) stream.parallel IntStream.range Random.ints / Random.longs / Random.doubles pattern.splitasstream bufferedreader.lines jarfile.stream / zipfile.stream Files.walk / Files.list / Files.lines

28 28 Suchen filter anymatch allmatch nonematch Transformieren map flatmap reduce collect SorDeren distinct sorted min max Abkürzen limit skip Konsumieren foreach count findfirst findany PrimiDve Streams maptoint maptolong maptodouble

29 29 java.util.stream.collectors tolist Erzeugt Liste Varianten: toset, tocollection joining String- KonkatenaDon Erzeugt Map<K, List<V>> groupingby Keys über Function<V, K>

30 30 Übung StreamAufgabe2

31 31 Java 8 java.udl.opdonal<t> Error: PizzaNotFoundExcepDon: message at... at... at... at... Caused by: java.lang.nullpointerexcepdon at... at... at... at...

32 32 The Billion Dollar Mistake Tony Hoare, Erfinder von QuickSort, Turing Award Winner: I call it my billion- dollar mistake. It was the inven?on of the null reference in Quelle: hxp://qconlondon.com/london- 2009/presentaDon/Null +References%3A+The+Billion+Dollar+Mistake Bild: hxp://en.wikipedia.org/wiki/c._a._r._hoare

33 33 Problem: Was ist die SemanDk von null? Was kann map.get(key) == null bedeuten? Mögliche Antworten: Der key ist nicht in der map enthalten. Der key ist enthalten und der zugehörige Wert ist null.

34 34 Übung OptionalAufgabe

35 35 Java 8 java.dme Date/Time- API, Versuch #3

36 36 java.time Immutable Threadsafe (auch Formaxer!) Brücken zur alten Welt java.util.date: from(instant), toinstant java.util.calendar: toinstant Warum nicht Joda- Time? hxp://blog.joda.org/2009/11/why- jsr isn- joda- Dme_4941.html

37 37 java.time Maschine Instant java.util.date Menschenlesbar LocalDate LocalTime LocalDateTime Enum: DayOfWeek Enum: Month MonthDay Year YearMonth Mit Zeitzonen ZonedDateTime OffsetDateTime OffsetTime java.util.calendar

38 38 java.time Maschine Menschenlesbar Mit Zeitzonen Instant java.util.date LocalDate LocalTime LocalDateTime Enum: DayOfWeek Enum: Month MonthDay Year YearMonth ZonedDateTime OffsetDateTime OffsetTime Where possible, it is recommended to use a simpler class without a Dme- zone. The widespread use of Bme- zones tends to add considerable complexity to an applicadon. java.util.calendar

39 39 java.time Duration Sekunden Nanosekunden Period Jahre Monate Tage

40 40 Übung DateTimeAufgaben

41 41 Stoff für einen weiteren Workshop... Java FX 8 Concurrency Verbesserungen (CompletableFuture,...) Nashorn Javascript Engine Java 7 Features, die untergegangen sind: try- with- resources, MulD- Catch NIO2 (java.nio.file.*)

42 42 Links Download hxp:// Eclipse- Support hxp:// JavaDoc hxp://download.java.net/jdk8/docs/api/java/udl/funcdon/package- summary.html hxp://download.java.net/jdk8/docs/api/java/udl/stream/package- summary.html hxp://download.java.net/jdk8/docs/api/java/udl/stream/stream.html hxp://download.java.net/jdk8/docs/api/java/dme/package- summary.html

43 43 Take it for a spin... David Burkhart Mail david.burkhart@andrena.de Marc Philipp Mail marc.philipp@andrena.de Blog marcphilipp.de hxp://

Java 8. Guild42, 18. November 2013. Stephan Fischli Dozent BFH, Software-Architekt ISC-EJPD

Java 8. Guild42, 18. November 2013. Stephan Fischli Dozent BFH, Software-Architekt ISC-EJPD Java 8 Guild42, 18. November 2013 Stephan Fischli Dozent BFH, Software-Architekt ISC-EJPD Berner Fachhochschule Haute école spécialisée t bernoise Bern University of Applied Sciences Inhalt Einführung

Mehr

Java 8 Lambdas und Streams

Java 8 Lambdas und Streams Java 8 Lambdas und Streams E-Voting Group, 24. Juni 2014 Stephan Fischli Dozent BFH, Software-Architekt ISC-EJPD Berner Fachhochschule Haute école spécialisée t bernoise Bern University of Applied Sciences

Mehr

Java 8. Die wichtigsten Neuerungen. W3L AG info@w3l.de

Java 8. Die wichtigsten Neuerungen. W3L AG info@w3l.de 1 Java 8 Die wichtigsten Neuerungen W3L AG info@w3l.de 2013 2 Agenda Java Versionshistorie und Zeitplan Neue Features in Java 8 Überblick Neue Features im Detail Lambda Expressions Functional interfaces

Mehr

Java 8: Lambdas, Streams & Co

Java 8: Lambdas, Streams & Co Java 8: Lambdas, Streams & Co Mindblast - Ruedi Arnold Zusammenfassung [ausgeblendete Folie!] Zusammenfassung: Am 18. März 2014 wurde Java 8 veröffentlicht und die Sprache damit nach jahrelangen Diskussionen

Mehr

Java 8 Die Neuerungen

Java 8 Die Neuerungen Java 8 Die Neuerungen Lambdas, Streams, Date And Time API und JavaFX 8 im Überblick Bearbeitet von Michael Inden 2., aktualisierte und erweiterte Auflage 2015. Taschenbuch. XVIII, 301 S. Paperback ISBN

Mehr

JUGS Java 8 Hands On Übungen

JUGS Java 8 Hands On Übungen JUGS Java 8 Hands On Übungen (C) Copyright by Michael Inden, 2015 michael.inden@zuehlke.com Lambdas Aufgabe 1a: Was sind gültige Lambdas? Schaue auf das folgende Interface LongBinaryOperator. public interface

Mehr

Java 8. Programmiermethodik. Eva Zangerle, Nikolaus Krismer Universität Innsbruck

Java 8. Programmiermethodik. Eva Zangerle, Nikolaus Krismer Universität Innsbruck Java 8 Programmiermethodik Eva Zangerle, Nikolaus Krismer Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete

Mehr

Java 8. Lambdas und Streams

Java 8. Lambdas und Streams Java 8 Lambdas und Streams Inhalte 1. Teil: Lambda Ausdrücke Theoretische Grundlagen Lambdas in Action 2. Teil: Streams Fazit Funktionsweise Sequentiell vs Parallel Praktische Beispiele Teil 1 - Lambdas

Mehr

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung

Mehr

Neuerungen in Java 8. Wichtige neue Features im Überblick. Folie 1 03.09.2015. Michael Inden

Neuerungen in Java 8. Wichtige neue Features im Überblick. Folie 1 03.09.2015. Michael Inden Neuerungen in Java 8 Wichtige neue Features im Überblick Folie 1 03.09.2015 Michael Inden Speaker Kurzlebenslauf Michael Inden, Jahrgang 1971 Diplom-Informatiker, C.v.O. Uni Oldenburg ~9 Jahre bei Heidelberger

Mehr

Java 8 Date Time API mit PostgreSQL. Swiss PGDay 2016

Java 8 Date Time API mit PostgreSQL. Swiss PGDay 2016 Java 8 Date Time API mit PostgreSQL Swiss PGDay 2016 Philippe Marschall Netcetera Java Entwickler seit 2007 viel Backend (JDBC) Java 8 Date Time Unterstützung in pgjdbc Agenda alte JDBC Date API neue Java

Mehr

Bean-Mapping mit MapStruct

Bean-Mapping mit MapStruct Machst Du noch Reflection oder annotierst Du schon? Bean-Mapping mit MapStruct Thomas Much thomas@muchsoft.com www.muchsoft.com 1 20 Jahre Java, 18 Jahre Beans JavaBeans JAXBEntities 2015 2006 2005 2000

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Ich liebe Java && Ich liebe C# Rolf Borst

Ich liebe Java && Ich liebe C# Rolf Borst Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String

Mehr

Neue Features in C# 2.0

Neue Features in C# 2.0 Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Java 8. Programmiermethodik. Eva Zangerle, Nikolaus Krismer Universität Innsbruck

Java 8. Programmiermethodik. Eva Zangerle, Nikolaus Krismer Universität Innsbruck Java 8 Programmiermethodik Eva Zangerle, Nikolaus Krismer Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl.

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl. Vorbereitungen Download AVO-Übung ICE Andreas I. Schmied (andreas.schmied@uni-ulm.de) AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS005 Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation

Mehr

JAX-RS 2.0 REST mit Java EE 7

JAX-RS 2.0 REST mit Java EE 7 Enterprise Java, Web Services und XML JAX-RS 2.0 REST mit Java EE 7 Java User Group Darmstadt 13. Juni 2013 http://www.frotscher.com thilo@frotscher.com Vorstellung Freiberuflicher Softwarearchitekt und

Mehr

Einführung in ActionScript

Einführung in ActionScript Fachbereich Mathematik und Informatik Softwareprojekt: Spieleprogrammierung Einführung in ActionScript Do, Hoang Viet(do@mi.fu-berlin.de) Freie Universität Berlin, SoSe 2012 Agenda Allgemeine Einführung

Mehr

Frontend Migration from JSP to Eclipse Scout

Frontend Migration from JSP to Eclipse Scout Frontend Migration from JSP to Eclipse Scout Peter Nüdling Raiffeisen Schweiz Jérémie Bresson, Peter Barthazy BSI Business Systems Integration AG Eclipse Finance Day, Zürich, 31. Oktober 2014 Seite 1 WebKat:

Mehr

Funktionale Programmierung und Streams in Java

Funktionale Programmierung und Streams in Java Standort Hagen Fachbereich Technische Betriebswirtschaft Funktionale Programmierung und Streams in Java Unterlagen für das 3. Semester Wirtschaftsinformatik Andreas de Vries Version: 13. August 2014 Dieses

Mehr

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe Anfragen für Listen Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe 1 MapReduce-Verfahren Google u.a. verwenden Map-Reduce-Verfahren zur Verarbeitung riesiger

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

"Functional Thinking" -

Functional Thinking - "Functional Thinking" - Funktionale Programmierung mit Java 8 Mindblast Informatik 9. Dezember 2015 Prof. Dr. Ruedi Arnold ruedi.arnold@hslu.ch http://digitrode.ru/images/2013/09/18/p2.png Zusammenfassung

Mehr

Back to the Future Eine Zeitreise von C# 1.0 zu C# 7.0

Back to the Future Eine Zeitreise von C# 1.0 zu C# 7.0 Back to the Future Eine Zeitreise von C# 1.0 zu C# 7.0 About us David Tielke mail@david-tielke.de Twitter: @davidtielke Ing. Christian Giesswein, MSc. www.software.tirol christian@software.tirol Twitter:

Mehr

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Entwicklertreffen vom : Java Development Kit 8. Andri Feldmann, Lorenzo Pafumi, Linus Eberhard

Entwicklertreffen vom : Java Development Kit 8. Andri Feldmann, Lorenzo Pafumi, Linus Eberhard Entwicklertreffen vom 03.02.2016: Java Development Kit 8 Andri Feldmann, Lorenzo Pafumi, Linus Eberhard 14.03.2016 1 Ablauf Interfaces & Lambdas Streams DateTime JavaFX Nashorn Annotations Currency Tools

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Musterlösungen zur Klausur Informatik 3

Musterlösungen zur Klausur Informatik 3 Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus

Mehr

Javaaktuell. Mit Lambda-Ausdrücken einfacher programmieren. ijug. Go for the Money Währungen und Geldbeträgen in Java

Javaaktuell. Mit Lambda-Ausdrücken einfacher programmieren. ijug. Go for the Money Währungen und Geldbeträgen in Java 04-2014 Winter www. ijug.eu Praxis. Wissen. Networking. Das Magazin für Entwickler Mit Lambda-Ausdrücken einfacher programmieren Go for the Money Währungen und Geldbeträgen in Java Aus der Community für

Mehr

REST-Schnittstellen Dokumentation und Testing. Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG

REST-Schnittstellen Dokumentation und Testing. Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG REST-Schnittstellen Dokumentation und Testing Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG Inhalt Einleitung Dokumentation und Ad-Hoc-Testing Testautomation Fazit Seite 2 Softwareentwicklung

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Software-Architektur Reactive Streams

Software-Architektur Reactive Streams Reactive Streams Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Streams große Datenmengen, Live-Daten, etc. können nicht als Ganzes verarbeitet werden Datenteile

Mehr

Höhere Programmierkonzepte Testklausur

Höhere Programmierkonzepte Testklausur Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

Java 8. Programmiermethodik. Eva Zangerle Universität Innsbruck

Java 8. Programmiermethodik. Eva Zangerle Universität Innsbruck Java 8 Programmiermethodik Eva Zangerle Universität Innsbruck Java 8 (1) Java 8 wurde von Oracle am 18. März 2014 veröffentlicht Damit wurden einige Features umgesetzt, welche ursprünglich schon für Java

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Einführung und Vorstellung: Grundlagen der Java- Programmierung. paluno

Einführung und Vorstellung: Grundlagen der Java- Programmierung. paluno Einführung und Vorstellung: Grundlagen der Java- Programmierung Gliederung 1 Einführung und Literatur 2 Java Sprachkonstrukte 3 Einführung in die objektorienderte Systementwicklung 4 Vererbung 5 ObjektorienDerte

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Scalaz Einführung für Java Programmierer Bernhard Huemer IRIAN

Scalaz Einführung für Java Programmierer Bernhard Huemer IRIAN Scalaz Einführung für Java Programmierer Bernhard Huemer IRIAN bernhard.huemer@irian.at @bhuemer Agenda Keine Einführung in Scala Keine Einführung in Scalaz ("Haskell für Scala") Motivation Transaktionen

Mehr

Nebenläufige Anwendungen in Java (J2SE, Rich Client, J2EE)

Nebenläufige Anwendungen in Java (J2SE, Rich Client, J2EE) CNAM Wintersemester 2014 / 2015 Nebenläufige Anwendungen in Java (J2SE, Rich Client, J2EE) Im Rahmen von: Betriebssysteme und nebenläufige Anwendungen Agenda Nebenläufigkeit in Java Anwendungen Basisfunktionen

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

3. Persistenz und Datenbanken Content Providers. Content Providers. Generische Schnittstelle zum Zugriff auf Daten zwischen Anwendungen

3. Persistenz und Datenbanken Content Providers. Content Providers. Generische Schnittstelle zum Zugriff auf Daten zwischen Anwendungen Content Providers Generische Schnittstelle zum Zugriff auf Daten zwischen Anwendungen Entkopplung der Daten-Schicht von der Anwendungsschicht Zugriff erfolgt URI-basiert Kontrolle der Zugriffsrechte eingebaute

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Burp- Wie ich lernte die zu lieben 19. März 2013 bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Was erwartet uns? Das erwartet euch Theorie:

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

im Rahmen des Seminars - Programmiersprachen Markus Nestvogel

im Rahmen des Seminars - Programmiersprachen Markus Nestvogel C# im Rahmen des Seminars - Programmiersprachen Markus Nestvogel 2 Gliederung 1. Einführung 2. Microsoft.NET 3. C# 3 1 Einführung objektorientierte Programmiersprache für Microsoft.NET entwickelt Konkurrenz

Mehr

JAVA - Zufallszahlen

JAVA - Zufallszahlen Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 5. JAVA werden beim Programmieren erstaunlich oft gebraucht: Simulationen Spiele Aufbau von Testszenarien...

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Die Beitragssatzdatei in der Version 5.0 wird nur über https Download auf einer frei zugänglichen Webseite auf den folgenden Seiten bereitgestellt.

Mehr

Enumerations und innere Klassen

Enumerations und innere Klassen Enumerations und innere Klassen Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung

Mehr

Übung 1: Object Inspector

Übung 1: Object Inspector Übung 1: Object Inspector Es ist ein System zu entwickeln, mit dem man Objektstrukturen bezüglich ihrer Properties analysieren und dann in einem Tree Viewer (JTree) anzeigen und bearbeiten kann. Properties

Mehr

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 equals und hashcode SortedSet NavigableSet Assoziative Container 2 / 32 HashSet mit eigener Klasse Wie kann man einen

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

5. Übung zu Software Engineering

5. Übung zu Software Engineering 5. Übung zu Software Engineering WS 2009/2010 Henning Heitkötter Desktop-Anwendung AUFGABE 13 1 Schichtenarchitektur Strukturierung komplexer Anwendungen Anforderungen: Flexibilität, Robustheit, Wartbarkeit,

Mehr

Praktisches API-Design

Praktisches API-Design Praktisches API-Design Kai Spichale adesso AG 13.07.15 Eine API ist wie die Spitze eines Eisbergs.. 2 http://www.pixelio.de/media/685029 Klassische Funktionen einer API Entkopplung von Implementierung

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

Mehr

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference) 2. Methoden n Generelles zum Aufruf von Methoden n Parameterübergabemechanismen (call by value, call by reference) n Speicherorganisation bei Methodenaufruf und Parameterübergabe (Laufzeitkeller) n vararg

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

versus Christian Grobmeier http://www.grobmeier.de @grobmeier

versus Christian Grobmeier http://www.grobmeier.de @grobmeier versus Christian Grobmeier http://www.grobmeier.de @grobmeier Programmiersprache von Google Kann JS ersetzen Läuft in einer VM Für ernsthafte Anwendungen Jung und rockt Heavy Metal Band aus England Ersetzt

Mehr

Java Programmierung Aufbau

Java Programmierung Aufbau Seminarunterlage Version: 11.08 Version 11.08 vom 22. Juli 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Die Alternative zum Web-Form Modell

Die Alternative zum Web-Form Modell Marc André Zhou Solution Architect www.dev -sky.net www.just -sp.net Die Alternative zum Web-Form Modell dotnet Cologne 03.05.2013 Agenda Web Forms vs. MVC ASP.NET MVC Features Web API ODATA Eine ASP.NET

Mehr

Agenda. (1) Einleitung (2) neo4j. (3) Beispiel + Demo

Agenda. (1) Einleitung (2) neo4j. (3) Beispiel + Demo Agenda (1) Einleitung (2) neo4j (1) neo4j Embedded (2) neo4j Server (REST-Interface) (3) Cypher Query Language (4) High Availability Cluster (3) Beispiel + Demo 2 Einleitung 3 Einleitung: Geschichte 1960er:

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Hivemind Ein leichtgewichteter Container

Hivemind Ein leichtgewichteter Container Hivemind Ein leichtgewichteter Container Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container

Mehr

http://www.tutego.com/ Schieberegler und analoge Anzeigen

http://www.tutego.com/ Schieberegler und analoge Anzeigen http://www.tutego.com/ Schieberegler und analoge Anzeigen http://www.tutego.com/ JScrollBar Schieberegler Unter Swing ersetzt javax.swing.jscrollbardie Klasse java.awt.scrollbar. Direkt wird die Klasse

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Hadoop I/O. Datenintegrität Kompression Serialisierung Datei-basierte Datenstrukturen. 14.02.2012 Prof. Dr. Christian Herta 1/29

Hadoop I/O. Datenintegrität Kompression Serialisierung Datei-basierte Datenstrukturen. 14.02.2012 Prof. Dr. Christian Herta 1/29 Hadoop I/O Datenintegrität Kompression Serialisierung Datei-basierte Datenstrukturen 14.02.2012 Prof. Dr. Christian Herta 1/29 Data I/O und Hadoop Allgemeine Techniken Data I/O Datenintegrität Kompression

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Agile Testautomatisierung im XING Mobile Team

Agile Testautomatisierung im XING Mobile Team Agile Testautomatisierung im XING Mobile Team Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Team Lead Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen

Mehr