ホームページ  >  記事  >  Java  >  Javaエンジニアになるための要件は何ですか?

Javaエンジニアになるための要件は何ですか?

零下一度
零下一度オリジナル
2017-07-26 16:48:471224ブラウズ

1. コア Java は Java の基礎であり、JDK のクラス ライブラリです。しかし、何が起こっているのかを理解するには、JDK のソース コードも理解する必要があります。 String、コレクション クラス (List、Map、Set) やその他のデータ構造など、頻繁に使用されるクラスについては、その実装と、さまざまなコレクション クラスの違いを理解する必要があります。特定の状況でどのコレクションを使用するのがより適切で効率的かは、これらのコンテンツのソース コードを見てください

2. マルチスレッド同時プログラミングは、サーバー側プログラムを作成するためにほぼ必要なテクノロジです。したがって、オブジェクト ロック メカニズム、同期キーワード、並行パッケージなど、Java のマルチスレッドに精通している必要があります。この部分については、『Java 並行プログラミング』という書籍を読むことをお勧めします。実践」で詳しく解説しています

3. I/O、ソケットプログラミング、まずは Java および I/O パッケージでのソケットプログラミングに慣れます。さらに深く進むのは、Java NIO です。さらに深く進むのは、ソケットの実装です。 Windows と Linux でソケットがどのように実装されているかを理解する 4. JVM についての知識は必要ですが、これは Java の本質であると言えます。 Java の母体を理解すると、Java メモリ モデル (Java ロックとマルチスレッドを理解するのに役立ちます)、バイトコード、JVM モデル、さまざまなガベージ コレクターと選択、JVM など、視野が広がります。実行パラメータ (JVM の最適化) など、これらの知識は、『In- Depth Java Virtual Machine』という書籍で詳しく説明されています。または、Oracle Web サイトにアクセスして、特定のバージョンの JVM 仕様を参照してください。

5.シングルトン、テンプレート メソッド、プロキシ、アダプターなどの設計パターン、およびコア Java および一部の Java フレームワークでの特定のシナリオの実装は、ゆっくりと蓄積する必要がある場合があります。まず、特定の使用法が見られるほど、シナリオが多ければ多いほど、自然に使用するようになります。

6. 一般的に使用されるデータベース (Oracle、MySQL など)、SQL ステートメント、および一般的な最適化

7. Spring、iBatis、その他のフレームワークなどの JavaWeb 開発フレームワークも最も重要であり、少なくとも必要です。彼らの一般原則を知ってください。

8. その他の有名で広く使用されているオープンソース フレームワークとパッケージ、Netty ネットワーク フレームワーク、Apache 共通 N パッケージ、Google の Guava など。コードを見つけるために Github にアクセスすることもできます。

巨視的に:

1. 技術的な幅広さに関しては

少なくとも複数のオープンソーステクノロジーに精通しており、strutsspring などのソースコードを学習している必要があります。


2. プロジェクトの経験に関して
私はいくつかの大規模プロジェクトを最初から最後までフォローしてきました。初期とは、需要調査を含む需要段階を指します。
終了とは、メンテナンスフェーズを含むオンライン配信後を指します。

3. アーキテクチャの経験に関して
分散システムのアーキテクチャと開発の経験があること。彼は、システム間の構造最適化とデータ ストレージ パフォーマンス指標に関して豊富な経験を持っています。キャッシュ、データベースの垂直セグメント化、ビジネスの抽象化、水平分割など、これらはすべてよく知られているはずです。

4. 業界分野に関しては
少なくとも 1 つまたは 2 つのビジネスに精通している必要があります。いわゆる熟練度は、金融証券ビジネスに従事している場合、少なくとも半分は金融アナリストである必要があります。電力事業に従事する人は少なくとも半分は電力技術者である必要があります。

5. 個人の修養
自分自身の独自の洞察を持ち、他人の言うことに従うことはありません。

微視的に:

1. オブジェクト指向の分析と設計 (OOA/OOD)、関連するパターン (GOF、J2EEDP)、および包括的なパターンに熟練している必要があります。 UML、特にクラス、オブジェクト、インタラクション、記述された図について十分に理解している必要があります。

2. JAVA 言語とそのコアクラスライブラリ (コレクション、シリアル化、ストリーム、ネットワーキング、マルチスレッド、リフレクション、イベント、処理、NIO、ローカリゼーションなど) の基本を学ぶ必要があります。


3. JVM、クラスローダー、クラスリフレクト、およびガベージ コレクションの基本的な動作メカニズムを理解する必要があります。クラス ファイルを逆コンパイルし、基本的なアセンブリ手順をいくつか理解できる必要があります。


4. クライアントプログラムを作成する場合は、WEB アプレットを学習する必要があり、GUI デザインの考え方と手法、デスクトップ プログラムの SWING、AWT、SWT を習得する必要があります。 UI ウィジェットの JAVABEAN コンポーネント パターンについても理解しておく必要があります。 JAVABEANS は、ビジネス ロジックをプレゼンテーション層から分離するために JSP でも使用されます。


5. JDBCAPI などの Java データベース テクノロジを学習し、Hibernate、JDO、CocoBase、TopLink、InsideLiberator (国内の JDO レッド ファクトリー ソフトウェア)、または iBatis などの永続化/ORM フレームワークを少なくとも 1 つ使用できる必要があります。


6. オブジェクトとリレーショナルのインピーダンスの不一致の意味、それがビジネス オブジェクトとリレーショナル データベースの相互作用にどのような影響を与えるか、およびその動作結果についても理解する必要があります。また、次のようなさまざまなデータベース製品の使用方法も習得する必要があります。オラクル、mysql、mssqlサーバー。


7. JAVA のサンドボックス セキュリティ モデル (クラスローダー、バイトコード検証、マネージャー、ポリシーと権限、コード署名、デジタル署名、暗号化、証明書、Kerberos など) および JAAS (JavaAuthenticationandAuthorizationService) などのさまざまなセキュリティ/認証 API を学ぶ必要があります。 、JCE (JavaCryptographyExtension)、JSSE (JavaSecureSocketExtension)、および JGSS (JavaGeneralSecurityService)。


8. サーブレット、JSP、JSTL (StandardTagLibraries)、およびオプションのサードパーティの TagLibraries を学習する必要があります。


9. JSF、Struts、Tapestry、Cocoon、WebWork などの主流の Web フレームワークと、その基礎となるモード (MVC/MODEL2 など) に精通している必要があります。


10. Tomcat、Resin、Jrun などの WEB サーバーの使用方法と管理方法、およびそれらをベースにした WEB プログラムの拡張方法と保守方法を学ぶ必要があります。


11. RMI や RMI/IIOP などの分散オブジェクトとリモート API を学習する必要があります。


12. Tuxedo、CROBA、そしてもちろん javaEE 自体など、さまざまな一般的なミドルウェア技術標準と Java との組み合わせを習得する必要があります。


13. JAXP (JavaAPI for XMLProcessing)、JDOM (JavaforXMLDocumentObjectModel)、DOM4J、または JAXR (JavaAPIforXMLRegistries) などの XMLAPI を少なくとも 1 つ学習する必要があります。


14. Java API と WebService を構築するツールの使用方法を学ぶ必要があります。たとえば、JAX-RPC (JavaAPI for XML/RPC)、SAAJ (SOAPwithAttachmentsAPIforJava)、JAXB (JavaArchitectureforXMLBinding)、JAXM (JavaAPIforXMLMessaging)、JAXR (JavaAPIforXMLRegistries)、または JWSDP (JavaWebServicesDeveloperPack) などです。


15. Spring、PicoContainer、Avalon などの軽量アプリケーション フレームワークと、それらの IoC/DI スタイル (セッター、コンストラクター、インターフェイスインジェクション) を学ぶ必要があります。


16. JNDI (JavaNamingandDirectoryInterface)、JMS (JavaMessageService)、JTA/JTS (JavaTransactionAPI/JavaTransactionService)、JMX (JavaManagementeXtensions)、JavaMail などのさまざまな J2EE テクノロジに精通している必要があります。


17. Enterprise JavaBeans (EJB) とそのさまざまなコンポーネント パターン: Stateless/StatefulSessionBeans、EntityBeans (Bean-ManagedPersistence [BMP] または Container-ManagingPersistence [CMP] とその EJB-QL を含む)、または Message- DrivenBeans(MDB)。


18. WebLogic、JBoss などの J2EE アプリケーション サーバーを管理および構成し、クラスタリング、接続プーリング、分散処理サポートなどの追加サービスを利用する方法を学ぶ必要があります。また、アプリケーションをパッケージ化して構成し、そのパフォーマンスを監視および調整する方法を理解する必要もあります。


19. アスペクト指向プログラミングと属性指向プログラミング (どちらも紛らわしいことに AOP と略されます)、およびそれらの主流の Java 仕様と実装に精通している必要があります。たとえば、AspectJ や AspectWerkz などです。


20. サービスを提供するには、さまざまな便利な API とフレームワークに精通している必要があります。たとえば、Log4J (ロギング/トレース)、Quartz (スケジューリング)、JGroups (ネットワークグループ通信)、JCache (分散キャッシュ)、Lucene (全文検索)、JakartaCommons などです。


21. 古いシステムやローカルプラットフォームに接続または接続する場合は、JNI (JavaNativeInterface) と JCA (JavaConnectorArchitecture) を学ぶ必要があります。

22. CROBA の習得など、JINI テクノロジーとそれに関連する分散システムに精通している必要があります。


23. JavaCommunityProcess (JCP) と、ポートレット (168)、JOLAP (69)、DataMiningAPI (73) などのさまざまな JavaSpecificRequests (JSR) が必要です。


24. sunOne、netBeans、IntelliJIDEA、Eclipse などの JAVAIDE に習熟している必要があります。 (ファイルの書き込みに VI または EMACS を好む人もいます。どちらを使用しても構いません:)


25. JAVA (正確には一部の構成) は冗長であり、多くの手動コーディング (EJB など) が必要となるため、コードに精通している必要があります。 XDoclet などの生成ツール。


26. 単体テスト システム (JNunit) に精通し、さまざまな生成およびデプロイメント ツール (Ant、Maven) を学ぶ必要があります。


27. JAVA 開発でよく使用されるいくつかのソフトウェア エンジニアリング プロセスに精通している必要があります。たとえば、RUP (Rational Unified Process) やアジャイル手法などです。


28. クロスプラットフォーム ソフトウェアの開発者として、GNU/linux、sunsolaris、macOS などのさまざまなオペレーティング システムの操作と設定について深い理解と習熟が必要です。


29. たとえば、JavaME や、新しい Web リッチ クライアント テクノロジなどのさまざまな新しい Java 仕様やテクノロジのアプリケーションを詳しく学ぶこともできます。 。


30. Java の少なくとも多くのテクノロジ (Java3D テクノロジなど) はオープン ソースによって直接駆動されているため、オープンソースについて知っておく必要があります。

以上がJavaエンジニアになるための要件は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。