「最後にダニエルはどのようにJDKのソースコードを読むことですか?「一緒について学ぶために

はじめに:

ソースコードを読むためにどのように、あなたは実用的な観点から、ソースコードを読む必要がなぜすべてのプログラマの必要性、が直面する課題である、三つの主要な目的があります:?

まず、手元に新たな問題や新たな要求を解決します。

第二に、床の一部が本当に実現の理論を理解します。

第三に、インタビューに対処します。

「最後にダニエルはどのようにJDKのソースコードを読むことですか? 「一緒について学ぶために

 

正しい態度

あなたがソースコードを読むの原因に参加する準備ができるまでには、まず心のどのような状態を修正する必要があります。

  1. ソースコードを読むことは、ほとんどで、いくつかの水文学を書くことができ、その後、タイヤを蹴る初心者で粉末愚か者を吸う、長引く戦争である、独自のパワーを向上させることに有意な影響はありません。
  2. ソースがないタイムリー、ケーキの上のアイシングされて読んでください。新しいフィールドを入力した場合、最初のタスクは、ソースコードを読むのではなく、文書を読むことです。
  3. ソースコードを読むことは必ずしもあなたの偉大な神がありません。二方向のグレート神:専門家と適用は、関係なく、あなたは賛成どちら側の実用的な操作の多数の開発は、最も基本的な保証です。
  4. ソースコードを読むことは最初の理論が必要です。このようなコードを読み込むが、TCP / UDPプロトコルを知らないとしてソケット通信は、それが唯一の野生の推測では、ヘッドレスハエのようなものです。

一部の人々が力を自慢することにより、一部の人々がリラックスブラシのニュースホット遊びを通して追いかけ、そして何人かの人々が友人を見つけ、ライブ見るためにゲームをプレイしてリラックスするようにソースは、趣味がそうであるようここでは、私が読んだお勧めします異なる人々が仕事と休みのさまざまな方法を選択し、リラックス...、私は他の人のコードを見てリラックスして、コードを書くことを好みません。

Javaerとして、日常生活は、あなたの最初の出会いの天然記念物JDKの場所です。JDKには、Javaの古いものと新しい機能のいくつかの深い理解で、コードの読み取りから開始し、アプリケーションを学ぶデザインパターンの一部だけでなく、よりかさばるフレームを読んで、将来のための強固な理論的基礎と粘り強い心理的な基盤を築くために。

選択ツール

工欲善其事必先利其器は、開始する前に、あなたがソースコード読取ツールを選択する必要があります。ツールの選択では、ピア・アドバイスの多くは、私は一般的に4つのカテゴリに分類されます。

  • テキストベースのツール(分類は物議を醸すかもしれないが、それはポイントではありません...)
  • などの例Nodepad ++、EditPlus、UEスタジオ、サブライム、VsCodeは、Vimについて
  • エキスパートツール
  • 例Source Insightは、理解のために、(多くのオンラインツールのも礎石)OpenGrokなど
  • オンラインツール(いくつかのオンラインサイトがハングアップしています)
  • 例のOpenJDKのため、SearchCodeなど
  • HERE
  • 例えば日食/ MyEclipseが、IDEAなど

個人的な好みから言えば、私は一緒に使用IDEAと(UltraFinder付き)UEスタジオをお勧めします。

Javaソースコードを読み取るために使用される強力な生産ツールとしてIDEA Javaは明らかに適切です。UEスタジオは、いつのように一時ファイルを選択するか、セクションC ++コードでのJava JDKビューを表示し、UltraFinder、ファイル間で任意のシンボル検索で、非常に実用的であることができます。

ビルド環境についての記事を読む、私はhttps://github.com/kangjianwei/LearningJDKに記述することができます参照してください。

読み上げ順序

ダース大型バージョンの上JDKプロジェクトでは、人々はまた、何千人もの人に達する可能性が取り扱う、オープンソースコミュニティの貢献を数えます。この巨大なプロジェクトでは、1回の読み取りが確かに可能ではない、あなたは最初に少しKenwanモジュールに適切なエントリポイントを見つける必要があります。

一つの可能​​な読み取り順序は次のとおりです。

  1. (端部に配置された文字)パッケージの基本的なタイプ
  2. 文字列、StringBufferの、StringBuilderを、StringJoiner、StringTokenizerは(知識サプリメントの正規表現)
  3. たCharacterIterator、のStringCharacterIterator、CharsetProvider、CharsetEncoder、CharsetDecoder(较难)
  4. java.util.functionにおける関数式
  5. 様々なjava.nioのバッファアンダー達成
  6. そして、java.lang.refのjdk.internal.refにおける種々の参考文献:ソフト参照/弱参照/仮想参照
  7. 危険な実装(JDK9、他への言及は、一緒に読み出さ推奨後に同じ名前の2つのクラスがあります)
  8. (ハード)java.util.streamの下で実施し、プログラミングの流れ
  9. 和ThreadLocalのスレッド
  10. 数学、ランダム、BigIntegerの、BigDecimalを
  11. java.lang.reflectの反射実装(最初のマスターモジュールシステムは9 JDK後に導入されます)
  12. クラスローダの実装
  13. javax.lang.modelの下でJava言語モデルの実装(Javaの構文の公式ドキュメントを参照してください)
  14. ノート(完全に習得するために必要な)
  15. タイマー、ResourceBundleを、プロパティ
  16. 日付と時刻の種類(特にJava8新しいセクション)
  17. java.lang.reflect.Proxyの、JDKの動的プロキシデフォルト
  18. java.util.concurrentのと契約。最初の原子クラスを読んで、ロック実装クラスを読んで、そして最終的にはそれらの同時読み取りツールを達成(難しいです)
  19. コレクションフレームワーク、主に3つのカテゴリー:リスト、セット、マップ(最初の非スレッドセーフ達成読んで、スレッドセーフ達成するために読んで)
  20. ネットワークプログラミング(主読取ソケット通信部、のHttpClientの後続の実現を読み取ります)
  21. IO / NIO / BIO(難しいです)
  22. ファイル、パス、およびその他のファイル操作ツール
  23. SQL、XML処理クラス/インタフェース
  24. ......

順序が唯一の一般的な方向であることをここで注意してください、それは絶対にこのリストに従うものとする必要があることを意味するものではありません。

コードを読み取るとき、多くの場合、他の多くのコードを必要とする、時間がない上記のリストに、ブランチに読んで枝がたくさんあります。

「最後にダニエルはどのようにJDKのソースコードを読むことですか? 「一緒について学ぶために

 

スキルを十分に活用

コード読解力、異なります。千人の読者と同じように、千ハムレットがあり、この問題に関するみんなのビューは同じではありません。ここでは、私はいくつかの個人的な経験について話しています。

最初の理論。モジュールを読み込む場合、最初にその理論的なサポートを検索、あるいは彼は練習に行く後にラフアウトラインで、他の人の読書体験を見てください。

試してみてください必要があります。新しいクラスの顔が、それは、その基本的な使い方を検索する小さな例を記述し、このクラスを分析するために、この例で使用した方法からスタートするのがベストです。

デバッグを使用しました。デバッグモードでのIDEAの使用には、この記事で説明の範囲を超えています。値は、一般的にデバッガを実行するために使用さ学ぶために必要な場合を除いて、あることに注意してください、あなたはまた、コンパイル時にデバッグコードのJavaの言語モデルの作品を読んだとき、これは便利です学ぶ必要があります。

優先順位を付けます。それを読んで行くには避けられない必要性が他のクラスを参照するときに、クラスの読み込みクラス間の網状構造。しかし、それが参照されている場合、クラスは、あなたがそれを読み戻す、先送りにマークを付けることが推奨され、非常に複雑です。しかし、読書中に複数のクラスならば、その呼び出しチェーンは、最終的に同じクラスを指すようになります、クラスが最初に優勝しなければなりません。

ビジネス最初。クラスが大きすぎる場合は、これらのメソッドの最初は、約実行フローのストロークが明確、機能によって分類一つずつ、その後、次の機能が克服するために行くことにしています。

浅理解。いくつかの方法が唯一の私たちがその役割を理解する必要があり、実装プロセスを把握する必要はありません。例えば、のような特定の分野におけるいくつかのアルゴリズムは、特定のルールを解決します。

エリアをポイントします。あなたが特定のメソッドを読めば、あなたは自分の考えが正しいかを確認し、アプリケーションにコメントを書くために方法のすべてのアプリケーションで検索する必要があります。分かりやすいエラーがある場合でも一括編集の新たな理解を持っている、すべての権利、バックです。フィールドを読んで理解するために、この方法を取ることをお勧めします。

試行錯誤する勇気。多くは、インターフェイスメソッドは意義が大きく異なる別の実装で抽象クラスです記述する。この時点で、クラスの実現を学び、その後、解釈が間違っている場合は、その後徐々に修復され、別の実装クラスを解釈するために、このクラスでは理解するのにかかりました。上に移動する偏見なしに、一時刻が正しく方法、誤解の役割を理解することができるようになります期待しないでください。

コメントへの注意を払ってください。開示された方法のほとんどは、これはすぐにこのアプローチを理解するための重要な方法で、対応するノートを持っています。あなたが流暢に、より良い英語を読むことができる場合は、Googleの翻訳は、当然のことながら、読み続けて取得することをお勧めします。しかし、非常に多くの場合、コメントはイライラさせられる:読みになった後、彼のスペードを知りません。コメントのいくつかは、多くの産業や高確率の前に理論的背景がコメントを読んでいないされずにソリューションを記述するために使用される一般的な用語、に関与することになりますので、これは、正常です。Notesのネイティブは、時には非常に悲しい万能薬ではない、と:あなたはこの方法を理解して、これらのノートは、右感じるだろう、彼のコメントを理解していなかった、前にこのアプローチを理解していません。したがって、私はコメントへの注意を示唆、他のユーザーが理解するために、時々検索し、ノートに依存していない、彼らの読書と組み合わせて、彼らがより快適になるだろう。

頻繁にメモを取ります。少しのインスピレーションは、あなたが最良の位置が直接対応するソースコードが、他の詳細を簡単に記録されているものを記録する必要があり、良いメモリは最終的に到着したが、悪いが書かれました。

ステップバイステップ。、読んで時間を読んでいない感じにする心目を覚まし、オープンソースのコードでは、細流を継続していない、それが何かをやって置く必要がある、または別の日をお読みください。私はクラスを読んで、時間のスパンは常に補充とプロセスではなく、一回の修正を改善されて一ヶ月以上であってもよいです。時には、彼女が読むために見えますが、理解することは、ほぼ臨界点で、人々が緊急にそうなこの時間、緊急乾燥するのは簡単です、パニックしやすい乾燥、それはパニック障害するのは簡単です、混乱、マウスをドロップすることは容易です。彼らは、問題が発生した見つけるのであれば、あなたが脳をリラックスだけでなく、行方不明のいくつかの基本的な理論を補完する必要があるかもしれないので、それを終了させるためにタイムリーです。

最後に、記事を読んであなたの忍耐をありがとう!

おすすめ

転載: www.cnblogs.com/L10086/p/11354996.html
おすすめ