「Netty パンチ カードの学習 - Xiaobai からギブアップまで」 ----- 20 - netty の BIO システム

チェックイン日 (2019-07-23)

学習ポイント

-   1.理解java IO系统
-   2.java 流的两种类型
-   3.java 流的分类
-   4.java IO流的处理逻辑
-   5.InputStream 类的层次
-   6.OutPutStream 类的层次
-   7.java IO流的链接
-   8.理解java IO的设计原则和设计模式
-   9.装饰模式
-   10.装饰模式 VS 继承

1. Java IO システムを理解する

    I/O はその名の通り Input/Output 入力/出力であり、その参照クラスが私たちのプログラムであり、プログラムに内容を書き込むことが入力であり、プログラムから内容を書き出すことが出力です。

2. 2 種類の Java ストリーム

I/O ストリームは、バイト ストリーム文字ストリーム    の 2 つのカテゴリに分けられます。下部では、すべての入力と出力はバイト ストリームです。

3. Java ストリームの分類

  • ノード ストリーム: ディスクやファイルなどの特定の場所から読み書きするストリーム
  • フィルター ストリーム: ノード ストリームを入力または出力として使用すると、既存の入力ストリームまたは出力ストリーム リンクを使用してフィルター ストリームが作成されます。

4. Java IO ストリームの処理ロジック

InputStream ロジック
-   1.open a stream  (打开一个流)
-   2.while more information (循环读取信息)
-   3.read information (写入信息)
-   4.close stream (关闭信息)
OutputStream ロジック
-   1.open a stream
-   2.while more information
-   3.write information
-   4.close stream

5. InputStream クラスの階層

graph RL
A[FileInputStream]-->B[InputStream]
C[ByteArrayInputStream]-->B
D[FilterInputStream]--过滤流-->B
E[ObjectInputStream]-->B
F[PipedInputStream]-->B
G[SequenceInputStream]-->B
H[StringBufferInputStream]-->B
I[DataInputStream]-->D
J[BufferedInputStream]--缓冲流-->D
K[LineNumberInputStream]-->D
L[PushbackInputStream]-->D

6. OutPutStream クラスの階層

graph RL
B[FileOutputStream]-->A[OutputStream]
C[ByteArrayOutputStream]-->A
D[FilterOutputStream]--过滤流-->A
E[ObjectOutputStream]-->A
F[PipedOutputStream]-->A
H[DataOutputStream]-->D
I[BufferedOutputStream]--缓存-->D
G[PrintStream]-->D

7. Java IO ストリームのリンク

InputStream チェーン
graph TB
B[File]--文件中获取输入字节-->A[FileInputStream]
A--缓冲-->C[BufferedInputStream]
C--将字节转换成java基本类型-->D[DataInputStream]
D-->E[数据]
OutputStream チェーン
graph TB
B[数据]--往输出流中写入数据-->A[DataOutputStream]
A--将基本数据类型转换成字节并保存到缓存-->C[BufferedOutputStream]
C--从缓存中读取数据并写入流-->D[FileOutputStream]
D--将数据从流中写出到文件-->E[数据]

8. Java IO の設計原理と設計パターンを理解する

    Java IO ライブラリは、チェーンと呼ばれるメカニズムを提供します。これにより、あるストリームを別のストリームの最後に接続して、ストリーム パイプのチェーンを形成できます。このパターンはデコレータパターンと呼ばれます。このモードにより、フローの機能を動的に高めることができます。

9.デコレーションモード

装飾モードは、透過的な方法でオブジェクトの機能を    クライアントに拡張でき、継承のもう 1 つの代替手段です。オブジェクトにより多くの責任を動的に付加します。デコレータ モードには次の役割があります。

  • 抽象コンポーネントの役割: 追加の責任が用意されているオブジェクトを標準化するために、抽象インターフェースが提供されます。
  • 具体的なコンポーネント ロール: 追加の責任を受け取るクラスを定義し、抽象コンポーネント ロールのインターフェイスを実装します。
  • 装飾的な役割: 抽象コンポーネント ロール オブジェクトへの参照を保持し、抽象コンポーネント インターフェイスと一致するインターフェイスを定義します。
  • 特定の装飾の役割: コンポーネント オブジェクトに責任を付与する責任があります。

10. デコレータパターン VS 継承

違い デコレータパターン 継承する
目標 物体 親切
サブクラス 不要 クラス拡張には、サブクラスが必要です
動的 静的コンパイル
責任 ランタイム割り当ての責任 コンパイル時のディスパッチ責任
柔軟性 フレキシブル 多くのサブクラス、柔軟性の欠如

おすすめ

転載: blog.csdn.net/u011291990/article/details/96993939
おすすめ