Java EEの研究では、7週目に反映して、メインI / Oフレームワーク、ネットワークプログラミングの内容を(図心を含む)結論しました

7週

Day31、Day32

I / Oフレームワーク

  • 流れの概念

    • メモリとストレージデバイスチャネル間の転送データ
  • 分類流れ

    • [フォーカス]の方向

      • 入力ストリーム

        • 記憶装置の内容がメモリに読み込まれ
      • 出力ストリーム

        • コンテンツ<メモリ> <ストレージ装置>内に書き込まれます。
    • 単位当たり

      • バイトストリーム

        • バイトでは、すべてのデータを読み書きすることができます
      • 文字ストリーム

        • 文字では、テキストデータのみを読み書きすることができます
    • プレス

      • ノードストリーム

        • これは、実際のデータ伝送を読み書きする機能を持っています
      • フローろ過

        • ベース・ノード上記ストリーム内の拡張
  • バイトストリーム

    • バイトストリームの親クラス(抽象クラ​​ス)

      • バイトの入力ストリーム入力ストリーム

        • 公共int型リード(){}
        • 公共int型リード(バイト[] B){}
        • 公共int型のリード} {(バイト[] B、INT LEN、オフINT)
      • OutputStream:バイト出力ストリーム

        • 公共ボイド書き込み(INT N){}
        • 公共ボイドライト(バイト[] B){}
        • 公共ボイドライト(バイト[] B、INTオフ、INT LEN){}
    • バイトストリームノード

      • FileOutputStream:

        • 公共ボイドライト(バイト[] B); //時間は、複数のバイトを書き込むために、アレイ内のすべてのバイト、出力ストリーム
      • FileInputStreamを:

        • ファイルの終わりに達した、または-1;公共int型リード)(バイト[] B)バイトの//数が配列bに内容を読み取るために、ストリームから読み込まは、実際に読み取られたバイト数を返します
    • バイトストリームろ過

      • バッファフロー:BufferedOutputStreamが/にBufferedInputStream

        • IOは、効率を向上させるディスクアクセスの数を減らします
        • バッファに格納されたデータは、ファイルに書き込まれ、バッファの内容をフラッシュするか、直接閉じることができます
      • オブジェクトストリーム:ObjectOutputStreamの/ ObjectInputStreamの

        • 強化されたバッファ機能

        • 強化された書き込み8つのプリミティブデータ型および関数の文字列

        • オブジェクトを読み書きする機能の強化

          • readObject()ストリームからオブジェクトを読み出します
          • オブジェクトのwriteObjectメソッド(オブジェクトOBJ)は、ストリームに書き込まれ
        • オブジェクトのシリアル化をストリーミングと呼ばれるプロセスを使用して、直列化復元

    • オブジェクト直列化

      • シリアル化の詳細

        • 我々はSerializableを実装する必要があります
        • 我々は、すべてのプロパティをシリアル化できることを確認する必要があります
        • transicentは一時的なプロパティを変更し、シリアライゼーションに参加しません。
        • java.io.EOFException:ファイルの最後に記号を読み込み、
  • (文字コード)をコードします

    • ISO-8859-1は、さらに西​​ヨーロッパ、ギリシャ語、タイ語、アラビア語、ヘブライ語に対応するシンボルを含む、ASCII以外に含ま
    • UnicodeのUTF-8可変長文字エンコーディングの長さ
    • 簡体字中国語GB2312
    • GBK簡体字中国語、サプリメント
    • BIG5台湾、繁体字中国語
    • 注:一貫性のないコーディング、文字化け
  • 文字ストリーム

    • 親クラス文字ストリーム(抽象クラ​​ス):

      • リーダー:文字入力ストリーム

        • 公共int型リード(){}
        • 公共int型リード(CHAR [] C){}
        • 公共int型のリード} {(CHAR [] B、INT LEN、オフINT)
      • 書き込み:文字出力ストリーム

        • 公共ボイド書き込み(INT N){}
        • 公共ボイドライト(文字列str []){}
        • 公共ボイドライト(CHAR [] C){}
      • ノード流の文字

        • FileWriter

          • 公共のボイドの書き込み(String str)文字//追記型の複数の文字、配列bのすべての文字出力ストリーム
        • FileReaderの

          • 公共int型リード(CHAR [] C)//ストリームから複数の文字を読み取る配列cへの内容を読み取るために、それがファイルの終わりに達した場合、文字の数は、実際に読み取る返し、または-1
    • 文字フィルタリングの流れ

      • バッファフロー:BufferedWrite、BufferedReaderの

        • サポート入力改行
        • 一つは、ラインを読み、ラインを書くことができます
      • PrintWriter

        • カプセル化しプリントは()、のprintln()メソッドは、サポートラップを書き込み
    • ノード流の文字

      • ブリッジの転流:InputStreamReaderの/のOutputStreamWriter

        • バイト文字ストリームをに変換することができます
        • あなたは、文字のエンコーディングを設定することができます
      • 手順を使用します

        • ノード・ストリームを作成します
        • フィルタフローを作成し、文字セットエンコーディングを設定します
        • パッケージフローろ過
        • 読み取りと書き込みデータ
        • 閉じる流れ
  • ファイルの種類

    • コンセプトは:ファイルやフォルダ内の物理ドライブ文字を表し

    • 方法

      • でCreateNewFile()//新しいファイルを作成します。
      • MKDIR()//新しいディレクトリを作成します。
      • //)(削除したファイルや新しいディレクトリを削除
      • //は、ファイルオブジェクトは、オブジェクトが存在表す決定)(存在
      • 絶対パスgetAbsolutePath()//ファイルを取得
      • getName()//取得の名前
      • getParent()//は、ディレクトリファイル/ディレクトリが配置されている取得します。
      • isDirectory()//ディレクトリです
      • ISFILE()//ファイルがある場合
      • 長さは()//ファイルの長さを取得します
      • LISTFILES()//リストのディレクトリのすべての内容
      • renameTo()//という名前のファイルを変更します

Day33-34

ネットワークプログラミング

  • ネットワークとは何ですか

    • 点線で構成される、それは多くのオブジェクト間の結合を表します。
  • コンピュータネットワーク

    • リソースの共有と情報伝達を達成するために。通信回線で接続された複数のホスト(ホスト)
    • インターネット:ドットを接続します
    • WWW:端に接続されたエンド
    • 物事:その組成はと接続されています
    • インターネットプログラミング:、コンピュータとコンピュータの間の接続を行う通信
  • ネットワークモデル

    • 第一層:送信信号と物理的媒体PHYデバイスとの間のデータ通信を提供します。(ツイストペア、光ファイバ)
    • 第二層:物理層、リンク層では、プロトコルまたはプロトコル(誤り制御)によって送信されたデータの正しさを制御します。(MAC)
    • 第三層:ネットワーク層は、ネットワークのノードを定義する責任があり、すべての論理アドレス(IPアドレス)を識別することができます
    • 第四層:選択したプロトコルは、データを再結合する場合、トランスポート層は、エラー回復のための責任があり、間違った順序で並び替えます。(TCP、UDP)
    • 第五層:セッション層はアプリケーションセッションを確立し、維持する責任がある、通信障害発生時に通信を復元継承します。(HTTP)
    • 第6層:プレゼンテーション層は、ASCIIまたはバイナリ形式で送信できるように選択定義されるデータ形式を変換するために使用する、暗号化され
    • 第七層:アプリケーション層は、ファイルへのアクセスと管理、信頼性の高い輸送サービス、リモート操作サービスを担当しています。(HTPP、FTP、SMTP)
  • 通信プロトコル

    • TCP / IPモデル

      • 相互接続されたネットワークのセットを実装するために使用される通信プロトコルは、プロトコルは、4つのレベルに分割されています

      • 4層

        • アプリケーション層

          • OSI参照モデルのアプリケーション層、プレゼンテーション層、セッション層

            • 第四層は:アプリケーション層は、種々の最終的なフォームのデータを送信する責任があり、ユーザを直接扱う層である、典型的なプロトコルは、HTTP、FTP、等です
        • トランスポート層

          • OSI参照モデルのトランスポート層に対応

            • 第三層:トランスポート層は、テキストデータを転送するための責任があり、主なプロトコルはTCP、UDPプロトコルであります
        • ネットワーク層

          • OSI参照モデルのネットワーク層に対応

            • 第二層:ネットワーク層は、バイナリデータと割り当てアドレスの転送を担当して、IPプロトコルは、メインプロトコルであります
        • ネットワークインタフェースレイヤ

          • OSI参照モデルのデータリンク層および物理層に対応します

            • 第1層:界面層は、回路接続を確立する責任があります。ネットワーク全体の物理的な基礎である、典型的なプロトコルは、イーサネット(登録商標)、ADSL、等を含みます
      • TCPプロトコル:伝送制御プロトコル

        • バイトストリームに基づいて接続指向の、信頼性の高い、トランスポート層プロトコルです。無制限のデータサイズ。プロセスが接続を確立するために、3ウェイハンドシェイクを必要とし、切断手順は、4ウェイハンドシェイクが必要です
      • UDPプロトコル:ユーザーデータグラムプロトコル

        • シンプルなトランザクション信頼性の低い情報転送サービスは、各パケットの64キロバイトのサイズを提供する、コネクションレスのトランスポート層プロトコルであります
    • IP

      • IPプロトコル:インターネットプロトコルアドレスインターネットプロトコルアドレス/インターネットプロトコルアドレス

        • インターネットデバイスに割り当てられたデジタルラベル(一意の識別)
      • IPアドレスが2つに分割されています

        • IPV4:4バイトの32ビット整数、および4 8ビットのバイナリセグメント、ドット8によって分離された各々に分割は、各8ビットの整数フォーマットは0 ^ 255の10進数に変換することができる:例えば255.255 DDDD。 255.255
        • IPv6は:16 128バイトの整数、および8節の16進数に分割し、各ドット16によって分離されました。XXX .XXXXX FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF例えば:各16ビット整数フォーマットは小数点数0 ^ 65535に変換することができます。
      • 分類の適用IPV4

        • クラスA:政府機関、1.0.0.1 ^ 126.255.255.254
        • クラスB:ミディアム、^ 191.255.255.254 128.0.0.1
        • クラスC:個々のユーザー、192.0.0.1 223.255.255.254 ^
        • クラスD:マルチキャストのために、224.0.0.1 239.255.255.254 ^
        • クラスE:実験のため、244.0.0.1 255.255.255.254 ^
        • ループバックアドレス:127.0.0.1は、マシンを指し、一般的に試験のために使用されています
        • ビューIPコマンド:IPCONFIG
        • IPテストコマンド:pingをDDDD
      • 一意的通信プログラム・エンティティを介して通信するネットワークを識別する:ポート番号

      • ポートの分類

        • 認識ポート:0 ^ 1023
        • 登録ポート:1024 ^ 49151
        • ダイナミックまたはプライベートポート:49152 ^ 65535
      • 一般的なポート

        • MySQLの:3306
        • オラクル:1521
        • Tomcatの:8080
        • SMTP:25
        • Webサーバ:80
        • FTPサーバ:21
    • InetAddressクラス

      • 概念:オブジェクトのインターネットプロトコル(IP)アドレスは、すべてのIPに関連する情報をカプセル化して表しており、情報を取得する一般的な方法を提供します

      • 方法:

        • パブリックstatic InetAddress getLocalHost()ローカルホストアドレスオブジェクトを取得します。
        • パブリック静的のInetAddressのgetByName(String型のホスト)のホスト名に基づいてオブジェクトのアドレスを取得します
        • 関連するすべてのオブジェクトへのpublic static InetAddressの[] getALLName(文字列のホスト)アドレスのアクセス
        • 公共の文字列はgetHostAddress()IPアドレス文字列を取得します
        • ホスト名のIPアドレスを取得するために公共の文字列のgethostname()
  • ネットワークプログラミング

    • TCPベースのネットワークプログラミング

      • ソケットプログラミング:

        • ソケット(ソケット)は、ネットワーク内の通信ノードであります
        • クライアントとサーバーソケットServerSocketを分けます
        • 通信要件:IPアドレス+ポート番号
    • 開発段階

      • 通信接続(セッション)を確立

        • ServerSocketを作成、ポート番号を指定します
        • コールは、クライアントアクセスを待つ受け入れます
      • クライアントがサーバに要求します

        • ソケットを作成し、サーバーIP +ポート番号を指定します
        • サーバに、送信要求データを出力ストリームを使います
        • 入力ストリームを使用して、クライアントに受信した応答データ(待機)
      • クライアントへのサーバーの応答

        • 入力ストリームを使用して、サーバに受信した要求データ(待機)
        • 出力ストリームを使用して、クライアントに応答データを送信
    • 教室ケース

      • S coketの使用サーバー側のプログラミング・レジスタ

        • 登録情報は、ファイルproperiesに保存されます
        • カプセル化
        • ID = {ID:「1001」、名前:}
        • 正常に登録戻った後の文字列は、「正常に登録します」
      • 使用するサーバーサイドのプログラミングScoketログイン

        • ユーザー情報プロパティファイルの取得、ユーザー名とパスワードを確認
        • 成功した検証が文字列を返した後、「ログイン成功」

概要

  • 通信回線を介して接続されたいくつかのホスト・リソースの共有と情報の伝送、コンピュータネットワーク
  • プロトコル:TCPは、バイトストリームに基づいて、接続指向の、信頼性の高いトランスポート層プロトコルです。無制限のデータサイズ
  • IP:インターネットデバイスに割り当てられた数値ラベル(一意の識別)
  • ユニークな通信プログラムの実体を介して通信ネットワークを識別します:ポートを
  • Scoketプログラミング:接続を確立するには、要求を受信し、応答を送信します

Day35

反射

  • クラスオブジェクトとは何ですか

    • オブジェクトクラス:アウトオブジェクトの新しいクラスに基づいて、オブジェクトのインスタンスも知られています
    • オブジェクト・クラス:クラスローディング製品は、すべての情報(クラス名、親クラス、インタフェース、プロパティ、メソッド、コンストラクタ)クラスをカプセル化
  • クラスオブジェクトを取得します。

    • オブジェクトクラスによって。クラスオブジェクトを取得します。

      • 学生S =新学生(); クラスC = s.getClass()
    • クラス名でクラスオブジェクトを取得します

      • クラスC =の.classクラス名。
    • 静的メソッドを介してクラスオブジェクトを取得します。

      • クラスC = Class.forNameの( "クラス名のパッケージ名。");
  • 共通操作

    • 一般的な方法

      • 公共SringのgetName()
      • 公共パッケージgetPackage()
      • パブリッククラス<?スーパーT> getSuperclass()
      • パブリッククラス<?> []でgetInterfaces()
      • パブリックフィールド[]れるGetFields()
      • パブリックメソッド[] getMethods()
      • パブリックコンストラクタ<?> [] getConstructors()
      • 公共TのnewInstance()
  • デザインパターン入門

    • 工場のデザインパターン

      • 開発は、「開閉の原則を。」非常に重要な原則を持っています オープン展開するには、修正のため閉鎖
      • Factoryパターンは、オブジェクト作成の問題の主な原因であります
      • これは、動的オブジェクトの作成を完了するために、デザインを反映して工場出荷時のモードもあり
  • シングルトンデザインパターン

    • シングルトン

      • シングルトンは:のみオブジェクトのクラスの作成を許可します

      • オプション1:(クラスがロードされるときに作成され、本質的にスレッドセーフな)飢え式

        クラスSingletion {

        プライベート静的最終シングルトンインスタンス=新しいシングルトン();
        プライベートSingletonb(){}
        パブリック静的シングルトンのgetInstance(){}
        戻りインスタンス。

        }

      • モード2「怠惰(スレッドセーフを使用するときに作成、プラス同期)の男

        クラスシングルトン{
        プライベート静的シングルトンintance = NULL;

        プライベートSington(){}
        シングルトンのgetInstance(同期パブリック静的){
        IF(例えば== NULL){
        インスタンス=新しいシングルトン()。

        }
        インスタンスを返します。

        }
        }

      • モード3:(作成、使用、スレッドセーフ)怠惰な男

        クラスシングルトン{
        プライベートシングルトン(){}

        プライベート静的クラスHoler {
        静的シングルトンS =新しいシングルトン()。
        }
        パブリック静的シングルトンインスタンス(){

        retuen Holder.s;
        }

        }

  • 概要

    • Classオブジェクト

      • Classオブジェクトは、クラスのすべての情報をカプセル化し、そのようなクラスのオブジェクトなどのプログラムの実行、入手可能な情報
    • クラスオブジェクトを取得するには、3つの方法

      • クラスC =オブジェクト。getClass()
      • クラスC =の.classクラス名。
      • クラスc = Class.forNameの( "クラス名のパッケージ名。");
    • ファクトリパターン

      • 主にオブジェクトを作成するために使用される、動的オブジェクトの作成を完了するために、工場の設計パターンで反射され
    • シングルトン

      • シングルトンは、唯一のオブジェクトのクラスを作成することができます
        マイクロチャネル公共番号を:プログラマがコーディングが大好き
        ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/weixin_43501566/article/details/105026149