この記事を書く目的は、主にいくつかの基本的なJavaの知識ポイントに関連する長年にわたってJavaを使用した私の経験のいくつかを要約することです。そのため、Java開発業界に参入する予定のJavaプログラマーや将来の初心者と共有することも望んでいます。私はあなたにいくつかの経験を与え、あなたがJavaをよりよく学び、使用させることを望んでいます。
この紹介の主な内容は、J2SE関連部分です。さらに、将来、Javaの各フレームワークに関連するJ2EE関連のコンテンツを紹介します。
長年にわたるJava開発とJava開発者へのインタビューの経験と組み合わされた後、J2SEの主なことは次のコンテンツをマスターすることだと思います。
1。JVM関連(各バージョンの機能を含む)
Javaに関与したばかりの人にとって、JVM関連の知識は必ずしも深く理解する必要があるわけではないので、その概念を簡単に理解することができます。ただし、3年以上のJavaの経験を持つ上級開発者にとっては、JVMを知らないことはほとんど受け入れられません。
Java操作の基礎として、JVMをまったく知らない人がJava言語を完全に理解できるとは信じがたいです。 3年以上のJavaの経験を持つ開発者にインタビューしたとき、JVMはほとんど必見の質問でした。もちろん、JVMは技術的能力の品質を決定する唯一のインタビューの質問ではありませんが、Java開発能力のレベルを証明できます。
JVMカテゴリでは、習得する必要がある知識は次のとおりです。
JVMメモリモデルと構造
GCの原則、パフォーマンスチューニング
チューニング:スレッドダンプ、メモリ構造を分析します
クラスバイナリバイテコード構造、クラスローダーシステム、クラスロードプロセス、インスタンス作成プロセス
メソッド実行プロセス
Javaのさまざまなメジャーバージョンの更新によって提供される新機能(簡単な理解が必要です)
2。Java操作(基本的な必需品)
これは非常に簡単に見ることができます。 Javaプログラムを実行できないのは誰ですか?しかし、多くの場合、IDEを介してJavaプログラムを実行するだけです。基礎となるIDEはJavaプログラムをどのように実行しますか?多くの人が理解していません。
この知識ポイントは、Java開発者が習得する必要がある最も基本的なものです。初心者のとき、最初のことはコマンドラインでJavaプログラムを実行する方法を教えることですが、多くの人がJavaの学習を終えてIDEを使用するとこれを忘れます。なぜこれを知っていることを強調するのですか? Javaを開始する最も純粋な方法を知った後、その時点で開始されたディレクトリの数、ネーミングの実行方法、パラメーターとは何か、欠落があるかどうかなどを分析できます。スタートアップに問題がある場合。これは、実際の開発における奇妙な可能性のある環境関連の問題を解決するのに役立ちます。
ここで習得する必要がある知識は次のとおりです。
JavacはJavaファイルをクラスファイルとしてコンパイルします
Javaコマンドの使用、コマンドラインにパッケージを使用してJavaクラスを開始する方法
Javaプログラム(ClassPath、java.library.path、Javaが実行されるホームディレクトリなど)に関係するさまざまなパス
3。データ型
この記事については何も言うことはありません。これは、Javaの基本的なタイプとオブジェクトタイプを習得することに過ぎません。梱包やボクシングなどを含むJDKがどのように自動的に変換されるかについて詳しく知ることができます。また、梱包後に等しいタイプの判断を避けるために注意する必要があります。
主な知識ポイント:
基本タイプ:int、long、float、double、boolean、。 。 。
対応するオブジェクトタイプ:整数およびその他のタイプから基本的なタイプへの変換、梱包、ボクシング
オブジェクトタイプ:Equals、HashCode
文字列タイプの機能
4。オブジェクトとインスタンス、オブジェクト作成
この点で、開発者はクラスとインスタンスの概念とそれらの違いを理解する必要があります。これは、Javaのオブジェクト指向の特徴の基礎です。主な知識ポイントは次のとおりです。
クラスとインスタンスの概念
インスタンス作成プロセス:
1.継承なし:メモリスペースを割り当て、変数を初期化し、コンストラクターを呼び出します
2。継承:静的アクションを処理し、メモリ空間を割り当て、変数を初期値として定義し、定義で初期化を処理し、コンストラクターを実行します
注意すべき点:
静的プロパティなどは、ベースクラス - >サブクラスから初期化されます
デフォルトのパラメーターレス構造方法に関連する機能
5。アクセス制御
これは、Javaカプセル化機能の基礎でもあり、習得する必要があるのは次のとおりです。
クラス、方法、およびフィールドのパブリック保護デフォルトプライベートの変更効果
6。プロセス制御
Javaプロセス制御の基本は、いくつかの構文が必ずしも一般的に使用されているわけではありませんが、適切な場所で理解して使用する必要があります。
習得する必要があるのは次のとおりです。
IF、スイッチ、ループ、forなどのプロセス制御用の構文
7。オブジェクト指向プログラミングの概念
これは、Java開発者が習得する必要があるJavaのコアコンセプトです。 Javaの多くの機能または知識ポイントは、Javaのオブジェクト指向プログラミングの概念に関連しています。私の理解では、優れた開発者はこれらの機能(知識ポイント)自体を理解するだけでなく、これらのオブジェクトがJavaのオブジェクト指向プログラミングの概念にどのように反映されているかを知る必要があります。ここに簡単にリストしましたが、主な知識ポイントには以下が含まれます。
3つの主要なオブジェクト指向の特徴:カプセル化、継承、および多型。それぞれの定義の概念、それらの特性が反映されているもの、およびそれぞれの使用シナリオ
静的多分配と動的な単一分布の概念
過負荷の概念と使用
継承:複数のインターフェイスの実装、単一のベースクラスの継承
要約、抽象クラス、インターフェイス
多型:メソッドカバレッジの概念と使用
インターフェイスコールバック
8。静的
静的属性は、毎日のJava開発でも頻繁に使用されます。静的キーワードに関連する使用法を理解し、抽象や最終などのキーワードと組み合わせて使用できるかどうかなど、他のキーワードと組み合わせて使用する必要があります。
マスターする主なことは次のとおりです。
静的特性、使用法、およびロード時にクラスを初期化する方法の定義
静的方法の定義と使用
静的クラスの定義と使用
静的コードブロックの定義と初期化のタイミング
9。基本的な知識ポイント
ここでは、主に散在するJavaの知識ポイントを体系的に分類していないいくつかの散在するJavaの知識ポイントをリストします。また、毎日の開発にも多く使用されています。実際、この分野には多くのコンテンツがあります。現在、私はこれらをここにいる間だけ要約しています:
含む:
Equals、Hashcode、String/StringBuffer、final、最後に、最終決定
10。コレクションフレームワーク
これは、より多くの習得が必要な部分です。使用せずに収集フレームワークは必要ないと言えます。これは非常に重要です。ただし、ここでの知識ポイントは難しくありませんが、コレクションの内部実装方法を理解することをお勧めします。これは、問題を解決するためにさまざまなシナリオで適切なフレームワークを選択するのに役立つためです。たとえば、10,000個の要素のセットがある場合、多くの場合、判断操作が含まれることがよくあります。コレクションまたは内部実装の特性を知っている場合、正しい選択をするのは簡単です。
次のコンテンツはここに含まれています(同時性相関は含まれていません):
収集フレームワークのシステム:基本的なコレクション、マップ
特定のセット実装、リスト、セット、マップ固有の実装、内部構造、特別な方法、適用可能なシナリオなどの内容
コレクションなどの使用
11。例外フレームワーク
Java開発では、例外がそれほど真剣に受け止められない場合があります。一般的に、例外に遭遇した場合、それらは直接投げられるか、単にそれらをキャッチして処理し、プログラムの全体的な操作に大きな影響を与えません。ただし、エンタープライズレベルの設計と開発では、異常の設計と取り扱いは、多くの場合、システムの全体的な堅牢性に関連しています。開発者にとって、優れたシステムでの例外の処理は統合され、どこにでも散在する多くの例外処理ロジックを避ける必要があります。システムの場合、例外は制御可能で、操作と保守が簡単でなければなりません。いくつかの例外が表示された後、それらに対処し、運用と維持の方法を知る方法があるはずです。したがって、例外フレームワークは非常に単純ですが、エンタープライズレベルのアプリケーション開発全体では、例外処理は非常に重要です。例外をうまく処理するには、Javaの例外システムを理解する必要があります。
この部分でマスターする知識ポイントは多くありません。
異常システム:
投げられる
例外
runtimeexception
エラー
runtimeexceptionと一般的な例外、特定の処理方法などの違い。
12.Java IO
IOは、Javaでファイルを読み書きするのが簡単であるだけでなく、ソケットネットワークの読み取りや書き込みなどのすべての入力操作と出力操作も含まれています。たとえば、標準のHTTPリクエストで投稿コンテンツを読むことも出力プロセスなどです...
IOの場合、Javaは基本的な入力と出力関連APIを提供するだけでなく、いくつかの単純化されたオペレーションとライターAPIを提供します。これは、一部の開発(多数のIO操作を含むプロジェクト)でも非常に重要です。また、毎日の開発に(ログ、読み取り、執筆など)が含まれます。
ここでの主な知識ポイントは次のとおりです。
基本的なIOシステム:inputstream、outputstream、reader/writer、file reading、さまざまなストリーム読み取りなどを含む。
NIOの概念、特定の使用方法と使用シナリオ
13。マルチスレッドの並行性
マルチスレッドは、Javaで比較的難しい部分です。マルチスレッドを適切に使用すると、特に多数のIO操作がブロックされている場合、CPU使用率を効果的に改善し、システム全体の効率を改善できます。しかし、それはまた両刃の剣でもあります。よく使用されない場合、システムは大幅に改善されたり改善されたりしないだけでなく、複数のスレッド間のデバッグなどの問題をもたらします。
マルチスレッドには多くの内容があります。マルチスレッドの最初の使用でJavaで習得する必要がある知識ポイントを簡単に説明します。将来的には、いくつかの高度な機能を詳細に導入する機会があれば、いくつかの高度な機能の使用シナリオの詳細な紹介があります。
マルチスレッドの実装とスタートアップ
呼び出し可能と実行可能な違い
syncrhoized、Reentrantlockのそれぞれの機能と比較
スレッドプール
実行結果を非同期に取得します
同時パッケージ
ロック
..
14。ネットワーク
Javaは、TCPプロトコルとUDPプロトコルを直接操作できるAPIも提供します。ネットワークのパフォーマンスを強調する必要がある場合、TCP/UDPで通信を直接使用できます。 Tomcatおよびその他のソースコードを表示する際に、これらの関連するAPIの使用を確認できます。ただし、一般に、TCPが直接使用されることはほとんどなく、MinaやNettyなどのフレームワークが処理に使用されます。この分野にはあまり開発がないので、私はそれらを詳細にリストしません。
15。時刻と日付の処理
ほぼすべてのアプリケーションでは、時間と日付の処理を避けることはできませんが、JDK8が友好的ではない前の時間関連APIの使用は避けられます。その時代には、ジョーダなどの時間枠を選ぶことができました。 JDK8のリリース後、新しいTime APIは基本的に他のフレームワークの利点を統合し、直接使用できます。
Java開発者の場合、時間と日付に対処するためにAPIを使用するのに熟練する必要があります。
特定の知識ポイントはもうリストされません。 JDK8の日時APIの使用を要約するために、将来の特別な記事を書きます。
16.xml parsing/json parsing
実際、これらの2つのコンテンツはどちらもJ2SEのコンテンツではありませんが、毎日の開発では、他のプログラムや構成ファイルとの相互作用は、これら2つの形式の解析とはますます分離できません。
ただし、開発者にとっては、XML/JSON固有の解析のいくつかの原則と方法を理解できると、特定のシナリオごとに適切な方法を選択して、プログラムをより効率的かつ堅牢にすることができます。
XML:ドム解析とサックス解析の基本原則とそれぞれの該当するシナリオを理解する必要があります
JSON:Jackson、FastJson、GSONなど、一般的に使用されるJSONフレームワークの使用を理解する必要があります。
17.Mavenの使用
MavenはJavaのコンテンツではありませんが、Mavenは革新的であり、Java開発に大きな利便性をもたらします。依存関係の導入と管理、開発プロセスの更新とリリース、さらにはバージョンの更新から、Mavenを使用すると、開発プロセスの複雑さを大幅に簡素化することができ、それにより多くの時間を節約できます。 MavenはJava開発者の標準構成になったと言えます。また、MavenはJava開発者の基本的な知識ポイントとも見なしています。将来、Mavenを使用する際に私の経験とスキルのいくつかを追加しますので、ここで詳しく説明しません。
18。ジェネリック
これは、JDK5によって導入された新しい概念です。実際には構文砂糖です。 Javaコードを書くときは少し便利です。一般に、アプリケーションまたはビジネスの開発には、単純に使用するだけで、必ずしもジェネリックを定義するために使用されるとは限りません。ただし、一部の基本的なパブリックコンポーネントが使用されます。必要に応じて、この部分を詳しく見ることができます。一般的に、単純に使用できます。
19。マーキング
また、JDK5の後に導入されました。 Springは優れたフレームワークであり、XMLから標準構成ファイルとして始まりました。ただし、Spring3の後、特にSpring-Bootの上昇後、注釈を使用してXML構成ファイルを簡素化することをお勧めします。開発者の場合、XML構成で多くの時間を節約できます。ただし、不利な点は、注釈がさまざまなクラスに散らばっていることです。 XMLとは異なり、すべての構成のグローバルな理解と管理を持つことができるため、すべてのXMLを完全に置き換える方法はありません。通常の開発者の場合、注釈だけを使用できます。公開コンポーネントを持つ一部の開発者は、注釈の定義と実装を理解する必要がある場合があり、必要なときに詳しく見ることができます。
20.RMI
Remotemethodinvocationは、Java Languageに固有のリモートコールインターフェイスであり、比較的簡単で便利です。ただし、言語間の状況の場合、それをサポートするためにWebサービスなどの他の方法が必要です。一般的に、プログラムはRMIを使用する必要はありませんが、特定の状況で使用できます。私はプロジェクトに参加しており、RMIを使用してプログラムのリモートスタートと停止を制御しています。
21.jni
Javaネイティブインターフェイスにより、ローカルインターフェイスメソッドをJavaで呼び出すことができます。これは、一般にC/C ++コードを呼び出すために使用されます。 JavaにSO/DLLファイルをロードするパスの問題は、インターフェイス自体を呼び出すのは複雑ではないことに注意してください。
上記は、これらの基本的なJavaの知識ポイントと技術的なポイントに関する私の見解と紹介の簡単な紹介です。これらの内容はすべて、長年にわたるJavaの使用に関するいくつかの要約に由来しています。 Javaにさらされたばかりの人やJavaから発展するつもりの人に経験を積むことを望んでいます。 Javaをより効率的に学び、使用し、貴重な時間を無駄にしないようにしたいと考えています。これにはまだ不完全なコンテンツがいくつかあり、将来の記事を通じて追加されます。個人的な能力が限られているため、もちろん、いくつかのエラーと省略があります。私を訂正し、一緒に話し合い、この記事を一緒に改善することを歓迎します。
Javaの知識ポイントの上記の要約 - Java初心者(初心者向けに読む必要がある)のためのいくつかの提案は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。