Tutorial 1 zur Java NIO-Serie: Eine kurze Einführung in Java NIO
Java NIO besteht aus den folgenden Kernteilen:
Kanäle
-
Puffer
Selektoren
Obwohl es in Java NIO viele andere Klassen und Komponenten gibt, bilden meiner Meinung nach Kanal, Puffer und Selektor die Kern-API. Andere Komponenten wie Pipe und FileLock sind lediglich Dienstprogrammklassen, die mit den drei Kernkomponenten verwendet werden. Daher werde ich mich in dieser Übersicht auf diese drei Komponenten konzentrieren. Andere Komponenten werden in separaten Kapiteln behandelt.
Kanal und Puffer
Grundsätzlich beginnen alle IOs von einem Kanal in NIO. Kanäle sind ein bisschen wie Streams. Daten können vom Kanal in den Puffer gelesen oder vom Puffer in den Kanal geschrieben werden. Hier ist eine Illustration:
Es gibt verschiedene Arten von Kanälen und Puffern. Im Folgenden sind die Implementierungen einiger wichtiger Kanäle in JAVA NIO aufgeführt:
FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel
Wie Sie sehen können, decken diese Kanäle UDP- und TCP-Netzwerk-IO sowie Datei-IO ab.
Neben diesen Klassen gibt es einige interessante Schnittstellen, der Einfachheit halber habe ich jedoch versucht, sie in der Übersicht nicht zu erwähnen. Ich werde sie in anderen Kapiteln dieses Tutorials erläutern, sofern sie relevant sind.
Im Folgenden sind die wichtigsten Pufferimplementierungen in Java NIO aufgeführt:
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
Diese Puffer decken die grundlegenden Datentypen ab, die Sie über IO senden können: Byte, Short, Int, Long, Float, Double und Char.
Java NIO verfügt auch über einen MappedByteBuffer, der zur Darstellung von speicherzugeordneten Dateien verwendet wird. Ich werde ihn in der Übersicht nicht erklären.
Selektor
Selektor ermöglicht einem einzelnen Thread die Verarbeitung mehrerer Kanäle. Wenn Ihre Anwendung mehrere Verbindungen (Kanäle) öffnet, der Datenverkehr jeder Verbindung jedoch sehr gering ist, kann die Verwendung von Selector praktisch sein. Zum Beispiel in einem Chatserver.
Dies ist eine Darstellung der Verwendung eines Selectors zur Verarbeitung von 3 Kanälen in einem einzelnen Thread:
Um Selector verwenden zu können, müssen Sie sich bei Selector registrieren Channel und ruft dann seine Methode select() auf. Diese Methode blockiert, bis für einen registrierten Kanal ein Ereignis bereit ist. Sobald diese Methode zurückkehrt, kann der Thread diese Ereignisse verarbeiten. Beispiele für Ereignisse sind neu eingehende Verbindungen, Datenempfang usw.
Verwandte Artikel:
Tutorial 2 zur Java NIO-Serie: Java NIO-Kanal-ähnliche Streams
Java NIO Series Tutorial 3: Grundlegende Verwendung von Puffer
Verwandte Videos:
Illustration des JDK-Download-Prozesses – JAVA-Anfänger-Video-Tutorial
Das obige ist der detaillierte Inhalt vonTutorial 1 zur Java NIO-Serie: Eine kurze Einführung in Java NIO. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Wenn Sie TKMybatis für Datenbankabfragen verwenden, ist das Aufbau von Abfragebedingungen ein häufiges Problem. Dieser Artikel wird ...

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Wie erkennt die Redis -Caching -Lösung die Anforderungen der Produktranking -Liste? Während des Entwicklungsprozesses müssen wir uns häufig mit den Anforderungen der Ranglisten befassen, z. B. das Anzeigen eines ...
