Java の IO ストリームは入出力を実現する基盤であり、データの入出力操作を簡単に実現できます。Java ではさまざまな入出力ソースを「ストリーム」として抽象的に表現します。
ストリームは順序付けられたバイトのセットであり、データ送信の一般用語または抽象化です。
ストリームには入力と出力があり、入力中にストリームはデータ ソースからプログラムに流れます。出力する場合、ストリームはプログラムからデータ ソースに転送されます。データ ソースはメモリ、ファイル、ネットワーク、プログラムなどです。
ユーザー プロセスとオペレーティング システム カーネル
Java の IO は、Java プログラムとオペレーティング システムの間にあるものとして理解できます。カーネル、オブジェクト間。
後で説明するブロッキングとノンブロッキング、同期と非同期は、これら 2 つのオブジェクト間の相互作用の結果です。この記事では、ユーザー プロセスとは Java プログラムを指します。
プログラム空間とカーネル空間
データの準備ができるまで待機中(データがカーネル バッファに到着するのを待機中)
カーネルからプロセスへのデータ (カーネル バッファからプログラム バッファへのデータのコピー)
Linux では、読み取り IO 操作の場合、データはプログラムのプログラム バッファに直接コピーされません。
最初にオペレーティング システム カーネルのバッファにコピーされ、次にオペレーティング システム カーネルのバッファからアプリケーションのバッファにコピーされます。
プログラム空間: ユーザープログラムに割り当てられるメモリ空間。
カーネル空間: カーネルが所有するメモリ空間。
ブロッキングと非ブロッキング
ブロッキング: ユーザー プロセスがシステム コールを行った後、ユーザー プロセスは常にロック状態になり、他の操作を実行できなくなります
ノンブロッキング: ユーザー プロセスがシステム コールを行った後、ユーザー プロセスはロックされず、他の操作を実行できます。
ブロッキングとノンブロッキングは、ユーザー プロセスのステータスを指します。ユーザー プロセスがロックされているかどうか
#同期と非同期##同期 I/O 操作では、その I/O 操作が完了するまで要求元のプロセスがブロックされます。
非同期 I/O 操作では、要求側のプロセスはブロックされません。
同期 I/O 操作では、IO 操作が完了するまで、要求側のプロセスがブロックされます。非同期 IO 操作では、要求元のスレッドがブロックされることはありません。
同期: ユーザー スレッドと IO スレッドは同じことを行います (ユーザー スレッドはブロックされ、カーネルが処理結果を返すのを待ちます)
非同期: ユーザー スレッドと IO スレッドはスレッドはさまざまな処理を実行します (ユーザー スレッドはブロックされず、他の処理を行い、カーネル処理が完了し、結果がユーザー スレッドに送信されます)
ファイル記述子Linux ではすべてがファイルです。ファイル記述子は、カーネルによってファイルに対して作成されるインデックスであり、後述するソケットを含め、すべての I/O 操作はファイル記述子 (インデックス) を呼び出すことによって実行されます。 Linux を初めて起動すると、標準入力として 0、標準出力として 1、標準エラーとして 2 が自動的に設定されます。
以上がJava io が重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
