Java プログラマとして最も辛いのは、選択肢が広すぎて、読むべき本が多すぎて、迷ってしまいがちなことです。私がこれまで読んできた技術書をいくつかピックアップし、学習の順序に従ってすべての人、特に継続的に技術レベルを向上させたいと考えている Java プログラマーに勧めたいと思います。
1. Java プログラミング入門
Java プログラミングの経験がないプログラマーにとって、この段階では Java の基本的な構文と基本的な使い方を素早くマスターすることが必要です。まずは、Java に慣れることから始めましょう。短時間で Java 構文をざっと見て、推測せずにさらにコードを記述します。「それが何であるかを理解する」必要があります。
1.「Java プログラミングの考え方」
Java プログラミングの経験をある程度積んだ後は、「理由を知る」必要があります。その理由を知るには、オブジェクト指向の基本知識、Java の基本構文、クラス ライブラリの基本がわかりやすく解説されており、問題解決に役立つ本が「Java プログラミング思考」です。 Javaプログラミングの基礎。この本の欠点は、分厚く冗長すぎるため、現代人のペースの速い学習には適していないことです。したがって、この本を読むときに何を選択するかを知っておく必要があります。重要なポイントに焦点を当てて、深く読んでください。
2. 『Agile Java』の中国語版
この本は出版社からもらったもので、ページをめくることもなく本棚に置いてありました。 2日前に本棚から取り出してパラパラめくってみたら、これは間違いなく良い本でした!本書の大きな特徴は、Java のさまざまな重要な基礎知識を学ぶ過程で、単体テストと TDD が随所で使用されており、アジャイルになり、TDD に向かうプログラミング的思考に微妙に影響を与えることです。また、この本は JDK5.0 の構文をベースにしているので、JDK5.0 の新しい構文を学ぶのにも最適です。さらに、この本は内容の選択も非常に適切であり、結局のところ、Java 言語には膨大なクラスライブラリがあり、この本の内容の選択と内容の量は非常に適切です。 Java の最も重要な側面を最小限の時間で習得するための重要な知識を提供し、優れたプログラミングのアイデアを養うための貴重な良書です。
著者自身はこの本を入門レベルに位置づけていますが、入門としては少し踏み込んだ内容かどうかはわかりませんが、私も時間があるときにこの本を読んで勉強してみようと思います。
2. 上級 Java プログラミング クラス
Java の基礎を築くには、より実践的な経験を積むことが近道だと思います。プログラミングのキャリアのこの段階で、良いプログラミングの習慣を身につけ、コードの品質を向上させるために読む価値のある本が 2 冊あります。
1.「既存のコードの設計を改善するためのリファクタリング」
この本は非常に有名なので、空いた時間に読んで、自分の実践で検証することができます。この本はあなたに微妙な影響を与えます。
2.「サンプルによるテスト駆動開発」
この本の最大の特徴は、とても薄くて負担にならないことです。週末の午後を見つけて、同時に読んで指示に従うと、1 日の午後にこの本を読み終えることができます。この本のすべての例を完了することができます。本書の目的は、実践的な戦闘を通じて TDD のアイデアを開発できるようにすることです。
3. Java アーキテクトへの道
この段階では、Java プログラミングの使用に非常に習熟しており、優れたプログラミングのアイデアと習慣を持っているはずですが、アプリケーション ソフトウェアの全体的なアーキテクチャについてはまだ理解できていない可能性があります。建築家への第一歩。
1.「Expert One-on-One J2EE Design and Development」
この本は、Rod Johnson の有名な本です。この本のコードから、SpringFramework が生まれました。しかし、この本の中国語訳はないようです。
2. 「EJB を使用しないエキスパート 1 対 1 の J2EE 開発」
この本は、多くの業界専門家の参加を得て gigix によって翻訳されましたが、実際には JavaEye はあまり貢献しておらず、実際にはその 1 つです。唯一の翻訳者の名前。
上記の 2 冊はロッド ジョンソンの古典であり、Java アーキテクトの必読書です。私が今まで読んだ中で一番丁寧で真剣な本です この本を読んだ時は、寝食も忘れて子供の頃と同じくらいのエネルギーで一気に読みました。 、夜に金庸の武侠小説を読んで、言及されている内容を一つ一つ自分の経験と知識で確認し、非常に鋭くまとめられていました。私のスキルが爆発していました。
しかし、他の人のレビューを読んだところ、読書経験は私ほどではないようですが、おそらくそれは人それぞれの知識の蓄積と経験が異なるためです。当時、私はたまたま十分な経験と知識を蓄積していましたが、それを体系的に整理することはできていませんでしたが、この本のおかげで完全な知識体系がすぐに形成されました。
3. 「エンタープライズ アプリケーション アーキテクチャ パターン」
Martin のもう 1 つの有名な本ですが、私はこの本を一般的に読んだだけで、じっくり読んでいませんでした。この本は、フレームワークを作る人に向いていると思われます。たとえば、ORM を自分で書くつもりなら、この本は必読です。ただし、アプリケーションを作成する人にとっては見なくても問題ありませんが、時間があれば、なぜこのフレームワークが設計されているかを理解するために真剣に見ることをお勧めします。 , これにより、問題について考えるフレームワーク設計者の視点にレベルを高めることができます。私はマーティンの本を常に賞賛してきましたが、ロッド・ジョンソンの本ほど真剣に読んだことはありません。
4.「アジャイルソフトウェア開発の原則、パターン、実践」
ボブおじさんの有名な本、アジャイルの古典的な傑作 この本は、ソフトウェア開発プロセスに関する本というよりも、さまざまなオブジェクトについて多くの時間を費やしています。指向のソフトウェア開発にはさまざまなパターンがありますが、個人的には、この本を読んだ後は GoF の「デザインパターン」を読む必要はないと思います。
4. ソフトウェア開発プロセス
ソフトウェア開発プロセスを理解することは、個々のプログラマーの良好なプログラミング習慣を向上させるだけでなく、チームのコラボレーションを強化することにも役立ちます。
1.「UML エッセンス」
UML は実際にはソフトウェア開発プロセスとは必要ありませんが、ソフトウェア チームが協力し、コミュニケーションし、ソフトウェア ドキュメントを作成するために必要なツールです。ただし、UML の本当に実践的な図は多くありません。この本を読むだけで十分です。「UML ユーザー ガイド」などを読む必要はありません。この本の中国語訳は非常に貧弱な翻訳であることを皆さんに思い出していただきたいので、できればオリジナルの英語版を読むことをお勧めします。
2.「エクストリーム プログラミングの分析と変化の受け入れ」XP
これは、Kent Beck の傑作の第 2 版で、中国語と英語で書かれています。多くを語る必要はない、必読の一冊。
3. 「統一されたソフトウェア開発プロセス」UP
実際、UPとアジャイルは必ずしも矛盾するわけではありません。UPもイテレーションやテストを重視しますが、UPが重視するドキュメント化やプロセス推進はアジャイルでは採用されません。いずれにしても、UP は一読の価値があります。たとえ UP を身に着けているとしても、アジャイルを真に受け入れる企業は中国にはほとんどありません。
4. 「アジャイル モデリング」AM
この本は、アジャイルと UP の両方を実現する方法を説明しており、多くのプログマティックな提案と実践も提案しています。 「エクストリーム プログラミングの分析と変化の受け入れ」、「統合ソフトウェア開発プロセス」、「アジャイル モデリング」の 3 冊を一緒に読んで、XP と UP の違いを確認し、AM がどのように XP と UP を統合し、これらを統合するかを確認できます。 3 つの理論を 1 つにまとめて独自の理論体系を構築すれば、本を書くこともできます。
5. ソフトウェア プロジェクト管理
プロジェクト管理の経験がまったくなく、リーダーから突然プロジェクト マネージャーに昇進した場合、プロジェクトをうまく管理できていないと感じ、改善したいと思うでしょう。プロジェクト管理能力を備えているなら、PMP 試験を受けようというのは、間違いなく途方もない努力です。
1.『急速なソフトウェア開発』
これも有名な本です。この本を手にすれば、上級のプロジェクト管理コンサルタントにアドバイスしてもらえ、自分の無能さを心配する必要はもうなくなると言えます。この本は、実際のプロジェクト管理において、これらの理論を語ったところで問題が解決するわけではありません。ソフトウェアプロジェクトで直面するさまざまな問題点を列挙した「ソフトウェアプロジェクトアイデア総集編」のようなものです。問題を解決する方法についてのアイデアがあれば、いくつかの変更を加えて処方箋や薬を見つけるだけです。
6. まとめ
この推奨読書リストでは、Struts、Hibernate、Spring などの人気のあるソフトウェア フレームワークの学習本や、AJAX に関する本はリストしていません。なぜなら、そのような本は古くなりがちであり、上記の本のほとんどは購入して収集する価値があるほど十分に長いライフサイクルを持っているからです。
1. Java 言語の基礎
Java 言語の基礎を学ぶための本といえば、誰もが間違いなく Bruce Eckel の「Thinking in Java」を推奨します。 Java言語の基礎においては基本的にこれを超える本はありません。この本の著者である Bruce Eckel は、インターネット上では天才投機家として知られています。著者の『Thinking in C++』は 1995 年に Software Development Jolt Award の最優秀書籍賞を受賞し、『Thinking in Java』は「Java World」に選ばれました。 1999年に「お気に入りの読者のウェルカムブック」に選ばれ、編集者が選ぶ本賞を受賞しました。 1986 年以来、著者は 150 以上のコンピュータ テクノロジに関する記事と 6 冊の本 (そのうち 4 冊は C++ に関するもの) を出版し、世界中で数百回の講演を行ってきました。彼は、『Java で考える』、『C++ で考える』、『C++ Inside & Out』、『C++ の使用』、および『パターンで考える』の著者であり、アンソロジー「Black Belt C++」の編集者でもあります。彼の本は、「最高の Java 参考書」、「Java 参考書を購入する最も賢い選択」、「これまで見た中で最高のプログラミング ガイド」と呼ばれています。著者の並外れた才能と言語をまたぐ能力により、著者は 10 年間の Java 開発の中で Java に最も関係の深い 10 人の 1 人に選ばれました。
『Thinking in Java』は、Java 言語のあらゆる側面について語っています。多くの Java 言語ベテランが、「これは、かなり醜い方法で Java 言語について語っている本です。」とコメントしました。この本では Java 言語について多くの詳細が説明されており、どの側面も非常に奥深いです。この本を通して、「醜い」Java 言語を見ることができます。
インターネット上には Java 言語の説明に関するビデオがたくさんありますが、中にはくだらないビデオもあります。 Java 言語の基礎を学ぶには、「Weng Kai - JAVA Language」が唯一の選択肢かもしれません。この講義は基本的に書籍「Thinking in Java」に基づいており、Weng 先生による興味深いジョークがたくさん含まれています。このビデオから私の学習が始まったのはとても幸運です。内容は30回の講義があり、合計3回読みました。
ただし、初心者には「Thinking in Java」はお勧めしません。中国では「Java 2 Core Technology」と呼ばれ、現在第 7 版が発行されている Prentice Hall PTR の「Core Java 2」を好みます。インターネット上の誰もが電子版をダウンロードできます。 Oreilly の「Java の概要」も良い選択です。上記の 2 冊の本を読んだ後、Weng Kai 先生のビデオを見て、「Java で考える」を学ぶことができます。
2. Java データ構造
Java データ構造に関する書籍は市場にほとんどありません。大きく分けて、APress の「Java Collections」、「Java のデータ構造」、ジョーンズとバートレットの「Java を使用したオブジェクト指向データ構造」、プレンティス ホール (2005 年 12 月 19 日) の「Java のデータ構造とアルゴリズム」があります。 . 「Java のオブジェクト指向設計パターンによるデータ構造とアルゴリズム」です。私の最初の英語の本が APpress の「Java Collections」であることはとても幸運です (この本は中国では中国語版が存在しない可能性があります。ダウンロードできるのは英語版のみです) 非常に論理的でシンプルです。 Java Collections API の完全な紹介と、API の拡張例を多数紹介します。これは、Java データ構造を学ぶために私が勧める唯一の良書です。ジョーンズとバートレットの他の2冊は中国に中国語版があるようなので、よかったら見てみてください。
API を学習したら、java.util パッケージ内の対応するクラスを確認できます。ただし、デザイン パターンを学習した後でのみ、Java Collections Framework 全体を完全に理解することができます。 Java Collections Framework は、イテレータ (Iterator) パターン、ファクトリ メソッド パターン、デコレータ パターン、アダプタ パターンなどの多くのよく知られた設計パターンを使用します。 java.util パッケージのデータ構造のソース コードを調べることで、悪名高い Properties クラスの設計を知ることができ、同時に基本的に単純なデータ構造を設計する能力を身につけることができます。
学習には終わりがないと言われていますが、Sun が提供する Java Collections Framework を学習した後、別の Apche の Java Collections Framework を学習することもできます。これは非常に興味深いです。相互に補完する 2 つのフレームワーク。
皆さんが Java コレクションを学び勉強する前に、Java コレクションには主にインターフェイス (インターフェース)、実装 (実装)、アルゴリズム (アルゴリズム) の 3 つの部分が含まれていることを思い出してください。
1. 主なインターフェイスは、List、Set、Queue、Map です。 List、Set、Queue は、Collection インターフェイスのサブインターフェイスです。
2. 実装は主に、これらのインターフェイスを実装する特定のクラスです。たとえば、List インターフェイスを実装する ArrayList、LinkedList、Stack、Vector、Set インターフェイスを実装する PriorityQueue、SynchronousQueue など、HashMap、TreeMap、Hashtable、Properties、WeakHashMap などです。 . Map インターフェイスを実装します。
3. アルゴリズムは主に、Java Collection Framework アルゴリズム全体の中核となる Arrays クラスと Collections クラスによって提供されます。並べ替えや検索など、さまざまな種類の一般的な操作をサポートします。
Java コレクションには 2 つのバージョンのデータ構造が含まれています。主に、同期をサポートする元のデータ構造と、同期をサポートしない新しいデータ構造です。
Java Collection Framework は、Comparator および Comparable インターフェイスを使用した並べ替えをサポートしています。 Iterator と Enumeraton の古いバージョンと新しいバージョンの両方が提供され、それらの変換方法なども提供されます。
java.util パッケージの Observable インターフェイスと Observer クラスは、オブザーバー パターンの中核です。
…
3. Java IO
Oreilly Publishing House から市販されている IO に関する本は 2 冊だけで、どちらも Elliotte Rusty Harold によって書かれています。 2 つの本のスタイルは基本的に同じです。「Jvava I/O」の初版を読むことをお勧めします。説明は比較的簡単で、内容は比較的集中しており、例が豊富です。幸いなことに、第 2 版はインターネットからダウンロードしました。今回は、NIO と IO を合わせて 726 ページありました。にはJ2ME部分が含まれていますが、シリアルポートとパラレルポートの通信部分がクラスライブラリのサポートが不十分なようで、実際に動作させることができません。
『Jvava I/O』の初版と一緒に、Oreilly には『Jvava NIO』という本もありますが、これもとても良いです。
「Jvava I/O」と「Jvava NIO」を順番に読んだ後、java.io パッケージ内のソースコードを学ぶことができます。ソースコードを学ぶ前に、いくつかのヒントを与えておきます:
Java の io パッケージには主に以下が含まれます:
1. ストリームには 2 種類があります: バイト ストリーム (バイト ストリーム) と文字ストリーム (文字ストリーム) はありません。いわゆるこれらは互いに補完しますが、強調する点が異なります。
2. 対称性には 2 種類があります: 1. バイト ストリームと文字ストリームの対称性。2. 入力と出力の対称性。
3. ブリッジ: バイト ストリームを文字ストリームに変換する InputStreamReader と OutputStreamWriter。
注意しなければならないこと:
1. PipedInputStream と PipedOutputStrem は 2 つの興味深いクラスです。
2. Bufferedをサポートするストリームは私たちがよく使うクラスです。
3. Java における Decorator パターンの最も有名なアプリケーションは、IO 設計です。各フィルター フローと特定のフローの関係を注意深く研究し、デザイン パターンに関する書籍をもっと読んでください。何かを得られると信じています。
4. io パッケージをよく学ぶことが net パッケージ、rmi パッケージを学ぶための基礎です...!
4. Java データベース
データベースの本は多すぎてダメです!この分野の本は基本的にすべて勉強しました。Apress の「JDBC Recipes A 問題解決アプローチ」を読むことをお勧めします。これは 2005 年末に出版されたばかりです (出版されていないようです)。中国では中国語版がありますが、必ずしも中国語版である必要はありません。外国書籍の国内翻訳は汚くて読めないことがよくあります。)しかし、インターネット上に電子版があるのは本当に幸運です。一見の価値あり。私が最初に読んで非常に満足した本をお勧めします。Wiley 発行の『Java Database Bible』です。これはとても良いです。 JDBC API を紹介する Sun 自身の書籍「JDBC API Tutorial and Reference」も良いです。私の 2 冊目の JDBC 本は、この API セットに関するものでした。
しかし、現時点では、これらの本はどれも比較的表面的な API アプリケーションの本です。機会があれば、JDBC API と JDBC 実装の内部詳細を紹介する本をお届けします。一日も早く頑張りますので、皆様の応援よろしくお願いします!
ちなみに、JDBC を学習している友人へのヒント:
JDBC の学習と使用は主にこの一連の API に基づいており、その使用プロセスも非常に簡単です。JDBC を使用する一般的なプロセスは次のとおりです。 :
1. 特定のデータベース (ドライバー クラス) をロードします。通常は Class.forName ("ドライバー クラス名") を使用します。
2. データベースに接続します。 -
Connection con = DriverManager.getConnection(url,ユーザー名、パスワード);
3. ステートメント stmt = con.createStatement();
4. 操作を実行します -- 結果 rs = stmt.executeQuery("SQL クエリ ステートメント");
5. result--
while(rs.next()){
Stringcol1 = rs.getString(1); JDBC 全体で変更できるのは、一般的に次のとおりです。
1. Connection オブジェクトによって作成できる Statement には、Statement、PreparedStatement、CallableStatement の 3 種類があります。
2. 複数のタイプの ResultSet を作成できます: 一方向の移動と更新不可能なトランザクションをサポートします。
3. データ入力のバッチ処理。
4. 結果セット内の特殊なタイプの列 (Blob、Clob、Arrary、Ref、Struct) に対する操作。
5. これらの特殊なタイプの入力データベース。
6. javax.sql パッケージの特別な結果セット (CachedRowSet、JdbcRowSet、WebRowSet) の操作。
7. もう 1 つは単なるデータソースであり、これも非常にシンプルです。 J2EE の管理オブジェクト
シンプル!すぐに誰もが JDBC を征服できると信じています。
5. Java ネットワーク プログラミング
ネットワーク プログラミング - 神秘的で挑戦的な方向性。しかし、Java ネットワーク プログラミングについて話す前に、まず Sun Company の開発者に感謝したいと思います。なぜなら、彼らの天才的なアイデアとインテリジェントなアーキテクチャにより、大多数の Java プログラマーが Java ネットワーク プログラミングを学習することが非常に簡単になったからです。
Java ネットワーク プログラミングに関する書籍については、現在第 3 版が出版されているオライリーの『Java Network Programming』をお勧めします。以前のバージョンは確実に市販されています。すでに第 3 版の電子版がインターネット上にあり、2004 年に海外で出版され、706 ページあります。非常に包括的で詳細な内容になっているため、Sun の内容が完全には公開されていない可能性がありますので、興味のある方はダウンロードしてご覧ください。見て! 2冊目は1998年にオライリー社から出版された『Java分散コンピューティング』です。基本的な部分がより詳しく書かれており、以下の例は今でも勉強する価値があります。
これらの本を読む前に、ヒントを与えておきます:
Java ネットワーク プログラミングは実際には比較的単純で、すぐに始めることができます。 Java ネットワーク プログラミングには、主に 1. ソケット、2. URL の 2 つの部分が含まれます。ただし、第 2 部も完全に第 1 部に基づいています。
1. ソケットには、クライアント側の Socket とサーバー側の ServerSocket が含まれます。 UDPの通信プロトコルに相当するDatagramSocketやDatagramPacketなどもあります。 つまり、ソケット部分は他の高度なプロトコルを確立するための基礎となります。
2. URL クラスはネットワーク リソース ロケーターであり、通常は HTTP、FTP、Telnet などの特定のネットワーク プロトコルに関連します。このクラスを通じて、openStream を通じてネットワーク リソースを io パッケージ内のストリーム (InputStream) で読み取ることができ、その OpenConnection メソッドを通じて接続を開くことができます。読み取り操作を完了するだけでなく、書き込み操作も完了できます。
Java ネットワーク プログラミングには通常、上記の 2 つの部分が含まれます。ネットワーク プログラミングは、IO およびマルチスレッドと非常に密接に関連しています。この部分を学習する前に、これら 2 つの部分を完全に理解する必要があります。
上記の部分を学習したら、java.net パッケージ内の関連するソース コードを学習できます。すべてのソースコードを調べるには時期尚早です。 net パッケージ全体には、ContentHandlerFactory、URLStreamHandlerFactory、URLStreamHandler、URLClassLoader およびその他の補助クラスが含まれており、これらは java.net ネットワーク プログラミングのフレームワークを形成します。そのソース コードを学習することで、java.net パッケージをすぐに理解できるだけでなく、拡張することもできます。このパッケージは、この考え方を自分のプロジェクトに適用するための基礎を築きます。
ここまでで、java.net パッケージの 60% しか理解できていないはずです。その一部については、JDecompiler などの逆コンパイル ソフトウェアを使用して、JDK インストール ディレクトリの jdkxxxjrelib ディレクトリにある rt.jar を開き、次のようなソフトウェアを使用できます。 WinRAR sun.net パッケージを開き、すべてのファイルを逆コンパイルします。これは、URL クラスの動作の詳細です。 sun.net パッケージを学習すると、ネットワーク プログラミング全体に精通できるようになります。
私たちはすでにネットワーク プログラミングに習熟しているようです。実際にはそうではありません。さらに詳しく知りたい場合は、続けてください。インターネット上には、私たちに「力を加える」ことができる優れたネットワーク プログラミング ライブラリやソフトウェアが数多くあります。たとえば、Apache の HttpCore と HTTPConnection は HTTP プロトコルに関連する 2 つのライブラリであり、JGroups は分散通信とグループ通信を研究するために必読のライブラリであり、Java プラットフォームである可能性のある Sun の JXTA などの P2P ソフトウェア パッケージを学習できます。ポイントツーポイント通信の将来の標準!次に、非常に成熟し広く使用されている P2P ソフトウェア Azureus を学習できます。 www.sourceforge.net からダウンロードできます。
千マイルの旅も一歩から始まります!やるだけ! (現時点では net パッケージのみを研究しており、近い将来、他のパッケージについてもさらに詳しく調査する予定です。Sun は、何らかの理由で net のその他の実装の詳細を公開していません。これにより、ソース コードをテキスト形式で研究できます)未公開の実装を本に書き込むときは、読者のために Java ネットワーク プログラミングに関する本を出版したいと考えています。)
6. サーブレットと JSP に関する本もあちこちにあります。お勧めできる本は 2 ~ 3 冊だけです。 Addison Wiley 著『Servlets and JavaServer Pages: The J2EE Technology Web Tier』を本当にお勧めします。これも非常に分厚い本です。 2003 年に海外で出版され、784 ページあり、比較的完全な説明と多くの例が記載されており、特に第 8 章のフィルターではいくつかの良い例が示されています。私がこれまでに見たサーブレットと JSP に関する他の本はすべて、それほど詳しくありませんでした。 (私が見ていなかっただけかもしれませんが)。オライリーの「Java Servlet Programming」や「Java Server Pages」は比較的分かりやすいので読めますよ!
サーブレットと Jsp を学ぶ前に皆さんに思い出していただきたいことがあります:
本質的に、サーブレットはサーブレット インターフェイスを実装し、サーバー側にデプロイされるサーバー側プログラムです。他の Java アプリケーションと同様に作成でき、データベースを操作したり、ローカル ファイルを操作したり、ローカル EJB に接続したりできます。サーブレット プログラムを作成する一般的なプロセスは次のとおりです。
2. HttpServlet クラスを継承します。 doGet、doPost メソッド;
3. オーバーライドされたメソッドの内部操作メソッドパラメータ HttpServletRequest および HttpServletResponse。
4. 読み取りリクエストは HttpServletRequest を使用します。 HttpServletRequest を使用すると、Http プロトコルのプロトコル ヘッダーを操作し、リクエストの操作メソッドを取得し、リクエストのパスを取得し、リクエストの文字列を取得し、さらに重要なことに、要求元のクライアントに関連する情報を取得できます。 Cookie と HttpSession オブジェクト。
5. Cookie を使用して、「sweetheart」オブジェクトを操作したり、HttpServletResponse に書き込んだりできます。
6. HttpServletResponse を使用してクライアントに情報を出力できます。 HttpServletResponse を使用すると、さまざまなタイプのプロトコル ヘッダーの作成、Cookie の追加、他の URL のリダイレクト、HTTP プロトコル ステータス コードの顧客への送信が可能になります。
7. HttpSession を使用して、セッション内に実装する関数を完了します。
同時に、サーブレットはいくつかのイベントとイベント リスナー (単なる単純なオブザーバー パターン) も提供します。フィルタとラッパー (ServletRequestWrapper、ServletResponseWrapper) もあります。これらは単純なストリームの使用とデコレータ モードの使用です。
Sevlet と JSP をサーバーにデプロイする必要があるのは、通常のファイルのデプロイ手順とパラメータ設定、およびプログラムでの使用方法を覚えておくだけです。
サーブレットを完全に理解した後は、JSP を学ぶのは比較的簡単です。 Jsp は完全にサーブレットに基づいており、HTML ドキュメント (PHP などの Web プログラミング言語など) にスクリプトを埋め込みたいプログラマーのニーズを満たすように設計されています。学ぶのもとても簡単です!
すべてがとても穏やかで、シンプルで、学びやすいようです!シンプルな見た目の裏には複雑な仕組みが隠されています。 Servlet や Jsp を徹底的に勉強したい場合は、Tomcat などのオープンソース ソフトウェアの具体的な実装を勉強する必要があります。これは単なるサーバーであり、クライアントが Web ページを使用して HTTP プロトコルを通じてサーバーにリクエストを送信した後、サーバーは HTTP リクエストを対応する HttpServletRequest オブジェクトに変換し、作成したサーブレットを呼び出す必要があります。サーブレット内の HttpServletRequest 同時に HttpServletResponse を操作すると、サーバーは HTTP プロトコルの要件に従って、HTTP プロトコルを使用してこの HttpServletResponse をブラウザーに送信します。サーバー側の JSP Web ページがクライアントによって要求されると、Tomcat はコンパイル ソフトウェアを使用し、javax.servlet.jsp パッケージ内のテンプレートを使用して JSP ファイルをコンパイルします。コンパイル後、それはサーブレットになります。以降の操作はサーブレットと全く同じです。
はサーブレットと Jsp に基づいて登場しました。いわゆる高度なテクノロジ: JSTL、Struts... は、いくつかのタグと MVC パターンの使用に他なりません。
これからも前に進んでください!勝利はその先にあります! !
7. マルチスレッド
神秘的に見えますが、始めるのは簡単ですが、習得するのは難しい方向です。
私が良いと感じた本を2冊お勧めします。まず、私がこの分野で初めて読むことができた本は、1998 年にサムズ社から出版された「Java Thread Programming」でした。非常によく書かれており、当時のメモをよく読み返していました。時間がある!やり方を知りたい場合は、自分の目で見てください! 2冊目の『Java Threads』はOReillyから3回出版されており、最新版は2004年版ですが、中国では英語版を読むことをお勧めします。この本では、IO、Swing、コレクションなど、マルチスレッドに関連する N の方向について説明します。
いくつかヒントを教えてください! Java クラス ライブラリには、マルチスレッドに関連するクラスはそれほど多くありません。主に、Thread、ThreadGroup、ThreadLocal、InheritableThreadLocal の 4 つのクラスと、Object の synchronize、notify、notifyAll メソッドのキーワードです。物体!
1 Thread はマルチスレッドのコアクラスであり、マルチスレッドを作成および操作するための一連のメソッドを提供します。
2 ThreadGroupはThreadを管理するためのツールクラスです。
3 ThreadLocal と InheritableThreadLocal は、Thread オブジェクトを格納するためのセーフのような関数を Thread に提供します。
4 言うまでもなく、実行可能です!
5 同期は、同期メソッドと同期ブロックの中核です。複数のスレッドがこのメソッドを呼び出す場合、1 つのスレッドのみがこのメソッドを使用でき、他のメソッドはブロックされるため、操作対象オブジェクトの内部状態の整合性が保証されます。スレッドが synchronize を使用してメソッドまたはブロックを呼び出すと、そのオブジェクトのオブジェクト ロックが取得され、ブロック内の操作が完了すると、オブジェクト ロックが解放され、他のオブジェクトが操作を続行できるようになります。
6 Wait、notify、notifyAll は、効果的な待機/通知メカニズムを提供します。 Java 言語のすべてのオブジェクトにはレスト ルームがあり、操作するオブジェクトの状態が満たされていない場合、スレッドはオブジェクトのレスト ルームで休息し、他のスレッドがオブジェクトを操作するときにオブジェクトのロックを解除します。ルーム内のスレッドは条件をチェックし、条件が満たされた場合に対応する操作を実行します。
マルチスレッドには基本的に非常に多くの基本があります。単純なことではありませんか?実際のプログラマーにとって、これでは十分ではないかもしれません。マルチスレッドを真にマスターするには、java.util.concurrent パッケージを勉強してください。マスター Doug Lea の作品は、もともとオープンソースの一貫したプログラミング ライブラリでしたが、後に Sun によって Java クラス ライブラリに組み込まれました。著者の Web サイトには、このライブラリの別のバージョンもあります。 Hibernation や OpenJMS などのオープン ソース ソフトウェアはすべてこのパッケージを使用しているため、研究する価値があります。
8. デザインパターン
デザインパターンに関して言えば、多くの人がこの本を推奨します。この本は Amazon で 5 つ星の推奨本です。ただし、長い間 Java を学習していない人、特に Java 初心者にはこの本はお勧めしません。その主な理由は、この本の例は基本的に C++ で書かれており、多くの詳細が十分に明確に説明されていないことです。
私が皆さんにお勧めする最初の本は、ヤン・ホン博士の「Java and Patterns」です。これは、中国人によって書かれた最初のデザインパターンに関する本で、非常に興味深いものであり、多くの中国の文化とパターンが組み込まれています。多くの概念、例、クラス図があり、比較的単純です。非常に優れた入門書であり、もう一つの大きな本です。
次に、Wiley Publishing House から出版されている「Pattern In Java」の 3 冊セットをお勧めします。最初の 1 冊を読んだところですが、2 冊目はあまり良くないようです。
3冊目は、2003年に中国鉄道出版局から出版されたマルチスレッドモードに関する中国語翻訳版(珍しい中国語翻訳版)『Java Multi-threading Design Patterns』です。マルチスレッドモードについて非常にわかりやすく説明されています。 、豊富なイラスト、各章の練習問題、最後に解答が付いています。これが私のマルチスレッド モードの研究の始まりでした。
今年出版された Head First シリーズの 4 冊目の書籍「Head First Design Pattern」は、Head First シリーズの書籍の利点を踏襲しており、多数のクラス図、豊富な例、興味深い注釈が含まれています。買う価値あり!
次に、J2EE の方向では、Addison Wesley が 2002 年に出版した「Patterns of Enterprise Application Architecture」を読んで勉強することができます。多くの著名人の作品がエンタープライズ情報の統合について語っています。 Sunが提供する「J2EE PATTERNS SL500」もとても良いです! Amazon で「パターンに関するホルブ」という本を星 4 つ半で勧めるのは遅すぎます。ただし、上記の 4 冊の本に詳しくない読者は読まないほうがよいでしょう。さらに疲れてしまうかも!
とても曲がりくねったルートでデザインパターンを学びました。ヤン・ホン博士の『Javaとパターン』を1回目で理解できなかった本を除いて4回読みました。私が大学院の 1 年生のとき、先生が選択科目として GOF の本を教えてくれたのを覚えています。最後のクラスには 40 ~ 50 人の学生がいたのです。理解できたのは 3 人だけでした。私も何も理解できませんでした (基本的なことが苦手で、主に C++ 言語がまったく理解できませんでした)。さて、「Javaとパターン」を借りてみましたが、全然分かりませんでした。幸いなことに、大学院3年生のときに、上海交通大学のRao Ruonan教授によるJava OOP言語の講義を聞いて、結合ブックパターンなどの3つのデザインパターンを理解してから、非常に興味を持ちました。他のパターンでも、それらの欲望を克服したいと思っていました。仕事を終えて最初に買った本は「Java とパターン」で、1,000 ページを超えるこの分厚い本を初めて勉強するのに 2 か月かかりましたが、3 回目では 15 日ほどで読み終えることができました。たくさんメモを取りました!それ以来、制御不能になりました。
適切な本を選んで勉強に没頭してください。すぐに始められると思います!
Java 言語を学習するための 8 つの簡単なパート、これは Java 言語の学習の始まりにすぎません。これをすべて理解したとしても、あなたはせいぜい Java プログラマーに過ぎず、これからの道は長く続くでしょう。データベース実装のソース コード、サーブレット サーバーのソース コード、RMI、EJB、JNDI、アスペクト指向プログラミング、リファクタリング、ANT ツール、Eclipse ツール、Spring ツール、JBoss、JOnAS、Apache Geronimo、その他の J2EE サーバーの学習を続けることができます。これらを学習すれば、優れた J2EE アーキテクチャになれるかもしれません。プロファイラー、コンパイラー、JNODE (Java で書かれたオペレーティング システム) の学習を続けることができます...