JavaSEレビュー
基本的な文法
コメント
- インラインコメント//
- 複数行のコメント/ ** /
- ドキュメントコメント/ ** * / javadocはヘルプドキュメントを生成します
識別子
javaキーワード(バイドゥレビュー)
データの種類
-
基本データタイプ(4タイプと8タイプ)
-
データの種類 の種類 バイト 整数 バイト 1 整数 ショート 2 整数 int 4 整数 長いです 8 フローティングポイント 浮く 4 フローティングポイント double(デフォルト) 8 キャラクター char 2 ブール ブール値 1(位) フローティングポイントBigDecimal
参照データタイプ
- クラス
- インターフェース
- アレイ
タイプ変換
- 低から高への自動タイプ変換
- 強制タイプ変換高から低(低)高
変数と定数
タイプvarName [= value];
範囲
- クラス変数
- インスタンス変数
- ローカル変数
一定の最終MAX_A = 10;
命名規則
- 名前を見る
- キャメルケースの命名(変数、メソッド)
- クラス、最初の大文字、ラクダのケース名
- 定数:大文字+下線
- pinyinを使用しないでください
-
オペレーター
- 算術演算子+-* /%++ –
- 割り当て演算子=
- リレーショナル演算子> <> = <= ==!= instanceof
- 論理演算子&& ||!
- ビット演算子&| ^〜>> << >>>
- 条件演算子?:(三元演算子)x?Y:z
- 拡張演算子+ =-= * = / =
パケットメカニズム
- ドメイン名を逆にする
- 名前の競合を防ぐ
- パッケージ
- インポート
JavaDoc
- JDKヘルプドキュメント
- 1.javadoc
- @auther作成者名
- @バージョンバージョン
- @Sinceサポートされている最も古いJDKバージョン
- @Paramパラメータ
- @return戻り値
- @throws例外
プロセス制御
-
スキャナーユーザーインタラクションSystem.in
-
シーケンス構造プログラムのデフォルト構造、トップダウン実行
-
構造を選択
- 単一選択構造の場合
- if-else二重選択構造
- if-elseif-else複数選択構造
- スイッチ
- jdkは文字列タイプをサポートします
- ケースの浸透
- ブレーク
- デフォルト
ループ構造
- 無限のループを避けてください
- 一方を行います
- for(int i = 0; i <100; i ++)
- ナインナイン乗算テーブル
- forループを追加
休憩して続行
- ブレーク:ループから抜け出す
- 続行:現在のループを終了します
- ラベル付き続行
- return:メソッドの実行を終了します
方法
- 方法は何ですか!
- メソッド定義修飾子の戻り値メソッド名(パラメーター名){戻り値;}
- メソッド呼び出し
- クラス名。メソッド
- オブジェクト。メソッド
- メソッドのオーバーロードは同じ名前ですが、パラメーターリストが異なります
- コマンドラインパスパラメータからメインメソッドパスパラメータcmdoutput java.class file run
- 可変長パラメータ
- …
- 最後のパラメーターに配置する必要があります
再帰
- 自分を調整し、自分に出口を与える
- LeetCodeについてよくある質問
アレイ
-
配列定義
- new int [5]
- {1,2,3,4,5}
- 同じタイプである必要があります
-
アレイの使用
- 添え字で値を取得する
- ArrayIndexoutofBounds
- ループトラバーサルの増加
-
二次元配列int [] []
-
アレイツール
-
ソートアルゴリズム
- バブルソート
- 並べ替えを選択
- 挿入ソート
- クイックソート
- マージソート
- ヒルソート
- ヒープソート
- ベースソート
オブジェクト指向
オブジェクト指向とは
クラスとオブジェクト
- クラスはオブジェクトの抽象化です:テンプレートクラス
- オブジェクトはクラス固有です
工法
- 構築された過負荷
- デフォルトのパラメータなしの構成
- パラメータ化された構造を手動で定義する場合は、別のパラメータのない構造を手動で追加する必要があります
- シングルトンモードにはプライベートコンストラクタが必要です!
新しいオブジェクト
- スタックストレージリファレンス
- ヒープには特定のオブジェクトが格納されます
パッケージ
- 私有財産、取得、設定
- 継承
- 拡張します
- オブジェクト
- 子クラスには、親クラスのすべての特性があります
- メソッドの書き換え
- この
- 素晴らしい
- Javaは単一の継承であり、継承できる親クラスは1つだけです
多形性
- 親クラスの参照は、子クラスのオブジェクトを指します。Personperson = new Student();
- キーのインスタンス、一致する場合は、タイプ間で変換できます
修飾子
- 公衆
- 保護
- 民間
- 静的
- 最後の
- 概要
インターフェース
- インターフェース
- 制約、メソッド名のみを定義できます
- サブクラスはインターフェイスを実装し、そのメソッドを書き直す必要があります
- メソッドが1つしかないインターフェースは機能インターフェースと呼ばれ、ラムダ式を使用して簡略化できます。
- インターフェイスは抽象的よりも抽象的です
- クラスは複数のインターフェースを実装できます
インナークラス
- ローカル内部クラス
- 静的内部クラス
- 匿名の内部クラス(強調)
異常な
スロー可能
- 例外
- ランタイム例外
- 1/0
- ClassNotFound
- NullPoint
- UnKownType
- 範囲外の添え字例外
- 。。。。
- 例外を確認する
- ランタイム例外
- エラー
- AWTエラー
- JVMエラー
- スタックオーバーフロー
- OutOfMemory
5つのキーワード
- try {}
- キャッチ(){}
- 最後に{}
- 手動でスロー例外をスロー
- throwsメソッドは例外をスローします
カスタム例外
- Exceptionクラスを継承するだけです
一般的に使用される
- オブジェクトクラス
- ハッシュコード()
- toString()
- クローン()
- getClass()
- 通知()
- 待つ()
- 等しい()
- 数学クラス//一般的な数学演算
- ランダムクラス//ランダム番号UUIDを生成
- ファイルクラス
- ファイルを作成する
- ビューファイル
- ファイルを変更する
- ファイルの削除
- 梱包//自動梱包と開梱(バイドゥは理解しています)がインタビューし、質問します
- 日付クラス
- 日付
- SimpleDateFormat yyyy-MM-dd HH:mm:ss
- カレンダー(推奨)
- 文字列クラスの不変性最終
- StringBuffer可変長append()大量のマルチスレッドデータ、低効率および安全性
- StringBuilder可変長シングルスレッドデータボリュームが大きく、影響が大きく、安全ではありません
コレクションフレーム
- コレクション
- リスト(順序付けられ、繰り返し可能)
- ArrayList(一般的に使用されます)
- 追加
- 削除する
- 含まれています
- サイズ
- LinkedList(一般的に使用されます)
- getFirst()
- getLast()
- removeFirst()
- addFirst()
- …
- ベクター
- スタック
- ArrayList(一般的に使用されます)
- セット(順序なし、繰り返し不可)
- HashSet(一般的に使用されます)
- TreeSet
- イテレーター:イテレーター
- リスト(順序付けられ、繰り返し可能)
- 地図
- HashMap(インタビューのためのよくある質問に焦点を当てる)
- JDK1.7:アレイ+リンクリスト
- JDK1.8:ハッシュテーブル=配列+リンクリスト+赤黒ツリー
- TreeMap
- HashMap(インタビューのためのよくある質問に焦点を当てる)
- 収集ツール
- Hutoolツール(それらのほとんどは持っています)
- タイプ変換間の問題を回避するための一般的な<>制約
IO流
- バイトストリーム
- 出力:OutputStream
- 入力:InputStream
- キャラクターストリーム
- 書き込み:リーダー
- 書き出す:Wirter
- ノードフロー
- CharArrayReader、Writer、InputStream、OutputStream
- StringReader、Writer
- パイプ(パイプラインストリーム)PipedOutputStream
- 処理フロー
- バッファ
- bufferInputStream
- bufferOutputStream
- bufferReader
- bufferWriter
- シリアル化
- シリアル化可能なトランジェントの逆シリアル化(透過的)
- データ
- DataInputStream
- DataOutputStream
- 変換フロー
- InputstreamReader
- OutputStreamWriter
- フィルター4
- 印刷
- PrintWriter
- PrintStream
- バッファ
マルチスレッド
- プロセスとスレッド
- run()、Start()
- スレッドの作成方法
- スレッドstart0、ローカルメソッド:javaには呼び出す権限がなく、プライベートを処理するために基になるCに渡されます
- 実行可能な機能インターフェイスラムダ
- Callableは戻り値を持つことができます
- 静的プロキシ
- 新しいトレッド(実行可能).start();
- ラムダ式
- 機能プログラミング
- 内部クラス定義が多すぎないようにしてください。
- new Thread(()-> {
- 塩();
- })。開始();
- ラムダ式を手動で再度導出する
- スレッドステータス
- 新しいステータス
- 準備完了
- 実行
- ブロック
- 死
- 一般的に使用される方法
- 睡眠
- 参加する
- 産出
- isLive
- 開始
- setPriority
- 割り込み
スレッドの同期
- 複数のオブジェクトが同じリソースで動作します
- キュー+ロック
- 同期
- 同期方法のデメリット:ロックが多すぎて3番目
- 同期コードブロック(一般的に使用されます!)2番目
- 最初のスレッドがロックを取得するために入り、この人がロックを解放するまで後でキューに入れられ、その後ロックを取得できます
- デッドロック:2人がお互いのロックを保持しています
- 相互に排他的
- リクエストして保留
- 剥奪なし
- ループ待機状態
- ロック(優先度が高い)最高
- ReentrantLock
- ロック
- trylock
- ロックを解除する
- ReentrantLock
- スレッド通信
- バッファ:メッセージキュー
- サインの位置:トラフィックライト
- 待つ();
- notifyAll();
- スレッドプール(プール)
- プーリング技術
- プールサイズ
- 接続の最大数
- ホールドタイム
- 。。。。。
ネットワークプログラミング
- IP
- ポート
- ソケットプログラミング
- TCP
- 3つのハンドシェイク
- 4回振る
- 接続指向
- UDP
- 接続なし
- パケット
- URL
- Tomcatを知る
- チャットコミュニケーション
- ファイルのアップロード
GUI
- AWT
- フレーム
- イベントを聞く
- マウス
- キーボード
- 窓
- アクションイベント
- スイング
- テキストボックス
- ラベル
- ボタン
- テキストフィールド
- パネル
- レイアウト
- 窓を閉めて
- リスト
- 貪欲なヘビ
- タイマー
- キーボードモニター
- ゲームフレームの概念
注釈と反射
- 注釈
- メタ注釈
- 組み込みの注釈
- カスタム注釈
- リフレクションリーディングアノテーション
- 反射
- クラスnewlnstance();
- クラスローディングメカニズム
- 方法
- invoke(user3、 "Guangzhou");
- オーバーロードがありますが、パラメーターのタイプも書き込む必要があります
- フィールドセット(user4、 "広州");
- 構築する
- newlnstance();
- 取得時に必須、パラメータのクラスタイプを渡す
- プライベートキーワードを破棄する
- setAcce'sible(true);
- パフォーマンス分析は正常です>閉じた反射を検出>デフォルトの反射
- シングルトンパターンの調査
- ストリーム
- ForkJoin
- 効果の比較