NIO Channels SYSTEM SOFTWARE 1
|
|
|
- Meike Günther
- vor 9 Jahren
- Abrufe
Transkript
1 NIO Channels SYSTEM SOFTWARE 1
2 Networking Grundlagen Channels und Buffers Nicht-blockierendes Arbeiten mit Selectors Asynchrone Channels Locks SYSTEM SOFTWARE 2
3 Motivation Mit NIO und NIO.2 wurden Channels als Alternative zu Input/OutputStreams eingeführt Channels bieten ein elementares API (low-level API) unterstützen effizienteres Lesen und Schreiben auf Files und Sockets erlauben asynchrone Verarbeitung Operationen der Input/OutputStreams sind heute mit Channels im Hintergrund realisiert Package java.nio.channels SYSTEM SOFTWARE 3
4 Konzepte Channels: Channels werden von Datenquellen und senken Files Sockets erzeugt und erlauben dann bidirektionales Lesen und Schreiben Buffer: Channels arbeiten grundsätzlich mit Buffer; folgende Buffer werden unterstützt: ByteBuffer CharBuffer ShortBuffer IntBuffer LongBuffer FloatBuffer DoubleBuffer Selectors: Selectors erlauben auf mehrere Channels zu horchen und damit in einem Thread mehrere Channels zu bedienen Asynchronous Channels für asynchrone Verarbeitung Locken von Dateien über Channels SYSTEM SOFTWARE 4
5 Networking Grundlagen Channels und Buffers Nicht-blockierendes Arbeiten mit Selectors Asynchrone Channels Locks SYSTEM SOFTWARE 5
6 Channels Channels werden von Files oder Input/OutputStreams erzeugt Zum Beispiel durch: Files.newByteChannel(Path path) try ( ByteChannel srcchnl = Files.newByteChannel(srcPath, StandardOpenOption.READ); ByteChannel destchnl = Files.newByteChannel(destPath, StandardOpenOption.WRITE); ) { Des Weiteren gibt es eine Vielzahl von Methoden, die Channels mit unterschiedlichen Eigenschaften erzeugen Channel Zoo: Interfaces: ByteChannel, ReadableByteChannel, WritableByteChannel, SeekableByteChannel, ScatteringByteChannel, GatheringByteChannel, AsynchronousByteChannel, AsynchronousChannel,... Classes: FileChannel, SocketChannel, ServerSocketChannel, AsynchronousFileChannel, AsynchronousSocketChannel, AsynchronousServerSocketChannel, DatagramChannel, SelectableChannel,... SYSTEM SOFTWARE 6
7 Lesen und Schreiben mit Channels Lesen und Schreiben erfolgt grundsätzlich über Buffer, d.h., es wird in Buffer gelesen und von Buffer geschrieben -1 für End of Stream int bytesread = channel.read( buffer ); int byteswritten = channel.write( buffer ); Buffers sind eine Abstraktion von Arrays mit spezieller API für Channels Bufffer werden über statische Methoden allokiert ByteBuffer buffer = ByteBuffer.allocate( 1024 ); Channel Buffer write read Data source/sink SYSTEM SOFTWARE 7
8 Buffer API Channel Wesentliche Methoden bei Buffers: put: Füllen eines Buffers mit Daten put get Buffer write read Data source/sink public ByteBuffer put(byte[] src) public ByteBuffer put(byte[] src, int offset, int length) public ByteBuffer put(bytebuffer src) get: Lesen der Daten aus Buffer public byte get() public ByteBuffer get(byte[] dst) public ByteBuffer get(byte[] dst, int offset, int length) public byte get(int index) public char getchar() public double getdouble()... clear: Löschen des Inhalts public final Buffer clear() flip und rewind: Lese- und Schreibposition zurückstellen public Buffer flip() public Buffer rewind() SYSTEM SOFTWARE 8
9 Buffer API Eigenschaften: capacity: Kapazität des Buffers public int capacity() position: Aktuelle Lese- oder Schreibposition public int position() public Buffer position(int newposition) limit: Position, wie weit Buffer geschrieben oder gelesen werden kann public int limit() public Buffer limit(int newlimit) SYSTEM SOFTWARE 9
10 Arbeitsweise Buffer Interpretation von position und limit abhängig, ob vom Buffer gelesen (Read Mode) oder in den Buffer geschrieben (Write Mode) wird Write Mode: position: nächste Position für neues Zeichen limit: gleich capacity Read Mode: position: nächste Position zum Lesen limit: bis wohin gelesen werden kann (exklusiv) flip, clear, rewind setzen Position und Limit flip: Setzt Limit auf aktuelle Position und Position auf 0 clear: Setzt Limit auf Capacity und Position auf 0 rewind: Setzt Position auf 0 flip SYSTEM SOFTWARE 10
11 Beispiel: Datei kopieren try ( ByteChannel srcchnl = Files.newByteChannel(srcPath, StandardOpenOption.READ); ByteChannel destchnl = Files.newByteChannel(destPath, StandardOpenOption.WRITE); ) { } ByteBuffer buffer = ByteBuffer.allocate(16); int nread = srcchnl.read(buffer); while (nread > 0) { buffer.flip(); destchnl.write(buffer); buffer.clear(); nread = srcchnl.read(buffer); } neuer Buffer Lesen der Daten und Füllen des Buffers flip für Entnehmen der Daten Schreiben der Daten aus Buffer Buffer löschen für neue Daten Lesen neuer Daten SYSTEM SOFTWARE 11
12 Sockets und Channels Für das Arbeiten mit Channels gibt es spezielle Methoden bei Sockets ServerSocketChannel für Verbindungsaufbau beim Server ServerSocketChannel server = ServerSocketChannel.open(); server.socket().bind(new InetSocketAddress(port)); SocketChannel channel = server.accept(); Öffnen des Channels Binden an Adresse Verbinden mit Clients SocketChannel für Client/Server Kommunikation SocketChannel channel = SocketChannel.open(); channel.connect(new InetSocketAddress(SERVER_IP, PORT)); bidirektionale Kommunikation channel.write( buffer ); channel.read( buffer ); Öffnen des Channels Binden an Adresse Schreiben auf Channel Lesen von Channel Schließen notwendig channel.close(); SYSTEM SOFTWARE 12
13 Networking Grundlagen Channels und Buffers Nicht-blockierendes Arbeiten mit Selectors Asynchrone Channels Locks SYSTEM SOFTWARE 13
14 Nicht-blockierende Channel-Operationen (1/2) Channels ermöglichen eine nicht-blockierendes Arbeiten, Operationen werden asynchron ausgeführt Channels müssen in non-blocking Mode gesetzt werden channel.configureblocking(false); Ergebnisse durch Ereignisse gemeldet Selector zum Arbeiten mit Ereignissen Öffnen eines Selectors Selector selector = Selector.open(); Registrierung von Channel-Operationen bei Selector SelectionKey dient dabei als Zugriff auf Registrierung SelectionKey key = channel.register(selector, SelectionKey.OP_READ); SelectionKey.OP_READ SelectionKey.OP_WRITE SelectionKey.OP_OPEN SelectionKey.OP_ACCEPT Mehrere Channels können beim gleichen Selector registriert werden damit kann man durch eine Selector mehrere (viele) Channels bedienen SYSTEM SOFTWARE 14
15 Nicht-blockierende Channel-Operationen (2/2) Behandlung der Ereignisse Abrufen der Ereignisse vom Selector int n = selector.select(); int n = selector.select(500); Zugriff auf Menge der aufgetretenen Ereignisse Set<SelectionKey> keys = selector.selectedkeys(); Iteration und Behandlung der Ereignisse blockiert bis Ereignisse vorhanden!! mit Timeout in ms Iterator<SelectionKey> keyiterator = keys.iterator(); while (keyiterator.hasnext()) { SelectionKey key = keyiterator.next(); if (key.isreadable()) {... } else if (key.iswritable()) {... }... keyiterator.remove(); remove des Keys notwendig!! } SYSTEM SOFTWARE 15
16 Beispiel: Horchen auf mehere Sockets Behandlung von Inputs von mehrere Socket-Connections Server erlaubt mehrere Verbindungen aufzubauen ServerSocketChannel server = null; try { server = ServerSocketChannel.open(); server.socket().bind(new InetSocketAddress(port)); server.configureblocking(true); while (!stopserver) { SocketChannel channel = server.accept(); Channel wird in non-blocking Mode versetzt und beim Selector für Read-Operationen registriert channel.configureblocking(false); SelectionKey key = channel.register(selector, SelectionKey.OP_READ); } } catch (IOException e1) {... } finally { try { server.close(); } catch (IOException e) { } } SYSTEM SOFTWARE 16
17 Beispiel: Horchen auf mehere Sockets Inputs aller Channels können dann in einer Schleife behandelt werden while (! stopserver) { try { int n = selector.select(500); Set<SelectionKey> keys = selector.selectedkeys(); Iterator<SelectionKey> keyit = keys.iterator(); while (keyit.hasnext()) { SelectionKey key = keyit.next(); if (key.isreadable()) { SocketChannel chnl = (SocketChannel)key.channel(); buffer.clear(); chnl.read(buffer); buffer.flip(); byte[] data = new byte[buffer.limit()]; buffer.get(data); System.out.println(Arrays.toString(bytes)); } keyit.remove(); } } catch (IOException e) { } } Reaktion von Inputs Zugriff auf auslösenden Channel Lesen von Channel Ausgabe auf Konsole SYSTEM SOFTWARE 17
18 Attachments bei SelectionKeys SelectionKey erlaubt Objekt als Attachment mitzuführen kann man gut für benötigte Informationen zur Behandlung des Ereignisses verwenden Anfügen von Attachment bei Registrierung Beachte: Behandlung von unterschiedlichen Channels Object attachment =... ; SelectionKey key = channel.register(selector, SelectionKey.OP_READ); key.attach( attachment ); Abrufen des Attachment beim Auftreten des Ereignisse int n = selector.select(500); Set<SelectionKey> keys = selector.selectedkeys(); Iterator<SelectionKey> keyit = keys.iterator(); while (keyit.hasnext()) { SelectionKey key = keyit.next(); Object attachment = key.attachment(); Beachte: Channel, bei dem Ereignis aufgetreten ist, durch key.channel() SocketChannel chnl = (SocketChannel)key.channel(); SYSTEM SOFTWARE 18
19 Networking Grundlagen Channels und Buffers Nicht-blockierendes Arbeiten mit Selectors Asynchrone Channels Locks SYSTEM SOFTWARE 19
20 Asynchrone Channel Asynchrone Channels unterstützen asynchrones Arbeiten entweder unter Verwendung von Futures oder mit CompletionHandler Vorgehen: Öffnen eines AynchronousChannels, z.b. AsynchronousFileChannel AsynchronousFileChannel filechannel = AsynchronousFileChannel.open(path, StandardOpenOption.READ); Asynchrones Lesen mit Verwendung von Future Future<Integer> future = filechannel.read(buffer, 0); Abholen des Ergebnisses blockiert! int nread = future.get(); // Verarbeitung der Daten buffer.flip(); byte[] data = new byte[buffer.limit()]; buffer.get(data); analog AsynchronousSocketChannel, AsynchronousServerSocketChannel SYSTEM SOFTWARE 20
21 CompletionHandler Mit CompletionHandler kann Callback realisiert werden CompletionHandler bei Operation mitgegeben Nach Ausführung der Operation wird Methode completed oder failed aufgerufen Über attachment kann von Aufruf zur Behandlung ein Objekt durchgereicht werden CompletionHandler generisch bezüglich Resultat- und Attachment-Objekt filechannel.read(buffer, position, attachment, new CompletionHandler<Integer, Object>() { public void completed(integer result, Object attachment) { buffer.flip(); byte[] data = new byte[buffer.limit()]; buffer.get(data); public void failed(throwable exc, Object attachment) { // handle failed read operation } }); SYSTEM SOFTWARE 21
22 Networking Grundlagen Channels und Buffers Nicht-blockierendes Arbeiten mit Selectors Asynchrone Channels Locks SYSTEM SOFTWARE 22
23 Locks Locking von Dateien über Channels FileLock lock = filechannel.lock( ); FileLock lock = filechannel.trylock( ); blockiert liefert null Lock-Objekt für Freigeben des Locks lock.release(); SYSTEM SOFTWARE 23
Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java
Jan Distel Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java Jan Distel - Diplomarbeitskolloquium 02.07.2010 1. Allgemeines 2. Datagram-Sockets 3. Sockets 4. Server-Sockets 5. Socket-Channels
Netzwerkprogrammierung mit Java
Netzwerkprogrammierung mit Java Eine Übersicht über Java NIO Andre Ufer [email protected] Zusammenfassung. Diese Ausarbeitung beschreibt die Netzwerkprogrammierung unter Java. Der Schwerpunkt
II.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
Client-Server TCP/IP - Kodierung
Client-Server TCP/IP - Kodierung Die klassen Ein (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination aus IP-Adresse
Teil 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
Programmiermethodik. Übung 10
Programmiermethodik Übung 10 Sommersemester 2011 Fachgebiet Software Engineering [email protected] Agenda Vorstellung Musterlösung HA 6 Client/Server Kommunikation in Java Vorstellung HA 7
Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)
Datenströme Arten von Streams Daten 0 1 1 0 1 0 1 0 Java Programm Bytes (8-Bits) Daten 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 Java Programm Characters (16 - Bits) Byteströme(InputStream/OutputStream) I Java Programm
! 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
Javakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 02: Streams filtern Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Datenströme (Streams) Filtern FilterWriter, - Reader Praxis:
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 [email protected] 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
Java I/O, Serialisierung und Netzwerkprogrammierung
Java I/O, Serialisierung und Netzwerkprogrammierung Philipp Güttler 16. Dezember 2009 Universität Ulm, Abt. SGI Progwerkstatt 2 19 Gliederung Java I/O, Serialisierung und Netzwerkprogrammierung 16. Dezember
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
Interface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
Verteilte Systeme - Java Networking (Sockets) -
Verteilte Systeme - Java Networking (Sockets) - Prof. Dr. Michael Cebulla 30. Oktober 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 36 M. Cebulla Verteilte Systeme Gliederung Grundlagen TCP/IP
Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme
Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,
Java 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(),
Oracle & Java HOW TO
Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau
Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions
Java Fehlerbehandlung
Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm
Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C
für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Client-Server TCP/IP - Kodierung
Client-Server TCP/IP - Kodierung Die Socketklassen Ein Socket (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination
Exceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1
Exceptions CoMa-Übung VII TU Berlin 7.11.013 CoMa-Übung VII (TU Berlin) Exceptions 7.11.013 1 / 1 Themen der Übung 1 Compilezeit- und Laufzeitfehler Exceptions 3 Try-Catch-Finally CoMa-Übung VII (TU Berlin)
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Kapitel 5: Iterierbare Container
Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik
1 Fehler-Objekte: Werfen, Fangen, Behandeln
1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally
Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)
Ausnahmen. 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 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:
Network Communication. Dr. Jürgen Eckerle WS 06/07
Network Communication Dr. Jürgen Eckerle WS 06/07 1 Thread-Programmierung ist wichtig um Nebenläufigkeit bei der Netzwerkprogrammierung zu realisieren Typisches Muster beim Server: Server-Handler. Der
Klausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
Erste Java-Programme (Arrays und Schleifen)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Arrays und Schleifen) Tutorium Bioinformatik (WS 18/19) Konstantin: [email protected] Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
Programmieren 2 12 Netzwerke
Programmieren 2 12 Netzwerke Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke [email protected] 1 Motivation Datenaustausch zwischen Programmen Spielstand Chat
Exceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
Connection Pooling. Was ist das?? Unter Connection Pooling versteht man generell die Wiederverwendung physischer Datenbankverbindungen.
Connection Pooling Was ist das?? Unter Connection Pooling versteht man generell die Wiederverwendung physischer Datenbankverbindungen. Wo wird es eingesetzt?? Connection Pooling wird vor allem in Verbindung
Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein
Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat
Java Einführung Exception Handling. Kapitel 17
Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf
Java - Programmierung - Prozedurale Programmierung 1
Java - Programmierung - Prozedurale Programmierung 1 // elementare Datentypen public class el_dt public static void main(string args []) byte b = 127; short s = 32767; int i = 2147483647; long l = 9223372036854775807L,
Software Engineering I (IB) Node.js. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Software Engineering I (IB) Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 15.11.2018 08:01 Inhaltsverzeichnis JavaScript auf dem Server!?............................ 1 Hello
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.
Ausdrucksbäume in verschiedenen Darstellungen
Ausdrucksbäume in verschiedenen Darstellungen SWE-42 Infix mit notwendigen Klammern: (a + b) / (c - d) Infix vollständig geklammert: (((a) + (b)) / ((c) - (d))) Postfix a b + c d - / Präfix / + a b - c
Grundlagen der Programmierung. Kapitel 11: Ein- und Ausgabe. Ziele dieses Kapitels. Das Problem. Datei
Ziele dieses Kapitels Grundlagen der ierung Dr. Christian Herzog Technische Universität München! Sie verstehen das Konzept der Ströme Sie können n wie,, Input und Output benutzen.! Sie können in Java Dateien
Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
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
Handbuch konsultieren!
Zeichenketten Klasse String Enthält zahlreiche Methoden z.b.: int length(): Anzahl der Zeichen in Zeichenkette String substring(int start): Unterzeichenkette ab Position start boolean equalsignorecase(string
Lesen und Schreiben von Dateien
Lesen und Schreiben von Dateien Pfade, Text-Dateien und Binäre Dateien Dr. Beatrice Amrhein Überblick Der Verzeichnis-Pfad Kopieren, Verschieben, Ändern oder Löschen von Dateien Lesen und Schreiben von
high level I/O/ low level I/O
Dateiarbeit in C Datei(engl. File) ist ein Menge von Daten (Bytes) auf einem geeigneten Datenträger. Festplatte USB-Stick Früher: Magnetband, Lochband, Lochkartenstapel, Diskette Eine Datei enthält Daten
FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
Erste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: [email protected] Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
Zeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
7. Java Fehler und Ausnahmen
Fehler und Ausnahmen in Java 7. Java Fehler und Ausnahmen Fehler und Ausnahmen unterbrechen die normale Programmausführung abrupt und stellen eine nicht geplantes Ereignis dar. Ausnahmen sind böse, oder
Ausnahmen. 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
Grundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)
Grundlagen der Programmierung Prof. H. Mössenböck 16. Ausnahmen (Exception Handling) Motivation Fehler können nicht immer dort behandelt werden, wo sie auftreten void p() { q(); Lösung void q() { r();
ÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
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
Beispiel Time Client/Server
Beispiel Time Client/Server /** * * Programmbeschreibung: * --------------------- * Dieses Programm ermittelt über eine TCP/IP-Verbindung die Uhrzeit eines * entfernten Rechners, wobei es sowohl die Rolle
Einstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
Programmieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
