blog

[準備] JAVAの基礎

シリアライズとは、オブジェクトをバイト列に変換することです。 テキスト、画像、音声、動画などのネットワーク伝送の場合...

Mar 3, 2020 · 5 min. read
Share this

オブジェクトのシリアライズ

  1. シリアライズとは
    シリアライズとは、オブジェクトをバイト列に変換する処理のことです。

  2. シリアライゼーションが必要な理由 テキスト、イメージ、オーディオ、ビデオなどのネットワーク伝送では、それらはバイト列としてネットワーク上を伝送されます。

  3. シリアライズ方法
    serializableインターフェイスかExternalizableのどちらかを実装します。前者は自動シリアライズ、後者は手動シリアライズという違いがあります。

    1. serialVersionUID定数とは何ですか?
      シリアライズ可能なクラスのバージョンを一意に識別します。
    2. トランジェント
      シリアライズする必要のないプロパティを変更します。

反射メカニズム

  1. 反射の原理

    反射メカニズムの詳細

  2. リフレクションがシングルトンパターンを破る仕組みと防止策

    シングルトン・パターンの全リスト

  3. シングル・インスタンス・パターンのさまざまな書き方とは

    シングルケースパターンの全リスト

かわりにものをいう

  1. リバースプロキシ

    フォワードプロキシとリバースプロキシの違い

  2. Nginx

    8分でわかるNginxの概要

  3. 代理店モデル
  4. 静的プロキシと動的プロキシ

    動的プロキシの仕組み

  5. 負荷分散

    いくつかの単純な負荷分散アルゴリズムとそのJavaコード実装

JAVA財団

  1. メモリ上のjavaオブジェクトの構造

    メモリ内のJavaオブジェクトの構造

  2. 梱包と開梱

    Javaにおけるボクシングとアンボクシングの徹底分析
    整数のボックス化は、値が[-128,127]にあるときにIntegerCacheキャッシュから直接データを取得することに注意してください。

  3. 整数の値の範囲

    整数の値の範囲

  4. Javaにおける負の数の表現

    Javaの原始符号、補符号、逆符号のまとめ

  5. バイトの範囲が-128~721なのはなぜですか?

    バイトの範囲が-128~721なのはなぜですか?

  6. 配列リスト関連

    1. 初期容量:10、新規時に空の配列を作成するだけで、最初の挿入時に、割り当てられた領域のみ。
    2. 拡張容量:現在の容量の1.5倍、1.5倍の拡張が十分でない場合は、予想される容量に拡張します。
    3. まず拡大、次に挿入
    4. シーンよりもクエリに適用される、ヘッドを挿入すると、パフォーマンスが良いリンクリストされていない、各時間は、テールまたは中間とバックを挿入する場合は、実際には、挿入パフォーマンスも大丈夫です。
    5. failFastメカニズム:modCountを使用して変更回数を記録し、イテレーターで使用します。
  7. LinkedList関連

    1. 頭部結節と尾部結節の保持
    2. 挿入と削除がより簡単に
    3. しかし、前ノードと次ノードが保存されるため、全体のコンテンツ空間は配列よりも大きくなります。
    4. failFast メカニズムもサポートされています。
    5. 容量拡張の検討は不要
    6. Dequeサポート、キューサポート、キューメソッド、オファー、ピーキング、ポーリングなど。
  8. ArrayListとLinkedListの類似点と相違点

    • ArrayListは:一番下は、オブジェクトの配列の実装です:配列のアドレスが連続的であるため、配列はO(1)ランダムアクセスをサポートしています。配列の初期化は、容量を指定する必要があります。配列は、動的な拡張をサポートしていない、そのようなArrayList、ベクター、スタックなど、問題の容量を気にせずに使用されるように見えるが、彼らは実際に基礎となる、配列の拡張を行います。コストの拡大は比較的大きいです、あなたは新しい配列を配列の拡張効率は低いですにデータをコピーするために開く必要があります。
    • LinkedListは:ノードデータ構造の基礎となる使用は、双方向リンクリストの実装の前後に2つのポインタがあります。配列に相対的に、チェーンテーブルの挿入効率は、唯一の前後に2つのポインタを変更する必要があります。チェーンテーブルが連続的な記憶領域を必要としないため、さらに、チェーンテーブルの拡張はありませんが、データの挿入は、各回は、単に最後のポインタの変更です。彼は前後に2つのポインタを維持する必要があるため、さらに、チェーンテーブルは、配列よりも多くのメモリを必要とする、それは削除、より多くのシナリオの挿入に適しています。さらに、LinkedListはまた、Dequeインターフェイスを実装しています。
  9. hashMapの原理

    1. 初期容量:16、着信が16未満の場合、最も近い2のべき乗が取られます。

    2. ハッシュアンドリハッシュ

    3. マルチスレッドでのデッドロック問題

      なぜhashmapはテールプラグを使うのですか?

    4. ハッシュテーブルとの違い

    5. とconcurrentHashMap.

    6. DOS攻撃

      ハッシュ衝突DoS攻撃

    7. ハッシュの競合を解決する方法

      データ構造とアルゴリズム:ハッシュ競合の解決

      • オープンアクセス
      • ハッシュアゲイン
      • ジップス
      • 公共のオーバーフロー・エリアの設置
  10. 1.7から1.8へのconcurrentHashMapの進化
    ConcurrentHashMapの進化から見るJavaマルチスレッドコア技術

  11. B/B+ツリー
    バランスド・バイナリー・ツリー、Bツリー、B+ツリー、B*ツリー 一つ理解すれば、すべてがわかります。
    B-treeとB+treeの挿入、削除のグラフィック詳細
    なぜMongodbのインデックスはB-treeで、MysqlのインデックスはB+treeなのか?

Read next

cvデータの拡張方法とimgaugの使用法

1.データ拡張型ミックスアップ:近傍リスク最小化の原理に基づく、すなわち、モデルの汎化能力を向上させるために、先験的知識によって学習サンプルの領域値を構成すること。 ミックスアップとは、簡単に言うと、2つのサンプルの入力とラベルの線形補間を行い、新しいサンプルを得ることです。remixは、カテゴリを補間する際に、サンプルの少ないカテゴリに重みを偏らせます。

Mar 3, 2020 · 4 min read