大廠ジャワポスト春募集必見:スカム反撃の道で学ばなければならない知識ポイントについて

序文

Githubがプログラマーの楽園であり、あらゆる種類の強力なオープンソースフレームワーク、ソフトウェア、またはチュートリアルがあることは誰もが知っています。これらのことは私たちの学習と進歩のために大きな進歩を遂げたので、私たちは誰もが学ぶことができるようにGithub上の7つの素晴らしいJavaオープンソースプロジェクトの技術文書を整理しました!

スペースの制限により、それを必要とする友人は私に個人的にメッセージを送ることができます[Java]〜

SpringCloudとマイクロサービスの構築に関する深い理解

  • シンプルなものから深いものまで、SpringCloudの基本的なコンポーネントを包括的に説明します。

  • Spring Cloudを使用したマイクロサービスの構築に関するワンストップの理解、実際の事例、およびクイックスタート。

  • マイクロサービスシステムのセキュリティを保護するために、SpringSecurityOAuth2について詳しく説明します。

この記事は16の章に分かれており、各章の主な内容は次のとおりです。

第1章では、マイクロサービスとは何か、マイクロサービスが必要な理由、マイクロサービスの長所、短所、および課題を紹介し、モノリシックシステムとマイクロサービスアーキテクチャシステムを比較します。

第2章では、主にマイクロサービスに必要な機能とSpringCloudの基本コンポーネントを紹介し、最後にSpringCloud、Dubbo、Kubernetesの比較と長所と短所を紹介します。

第3章と第4章では、マイクロサービスを構築するための準備、つまり開発環境の構築とSpringBootの使用について説明します。の、

第3章では、JDKのインストール、IDEAとMavenの使用など、開発環境の構築を紹介します。第4章では、Spring Bootの機能と利点を含む、Spring Bootの基本的な使用法を紹介し、SpringBootプロジェクトを作成します。 IDEA、Spring Boot構成ファイルの詳細、Spring Bootのアクチュエータモジュール、およびSpring BootによるJPA、Redis、Swagger2などの統合。

第5章から第9章では、SpringCloudフレームワークの基本モジュールであるSpringCloud Netflixモジュールを紹介します。これは、マイクロサービスを構築するためのSpringCloudの基本コンポーネントをカバーしています。たとえば、Eureka、Ribbon、Feign、Hystrix、Zuulなどのこれらのコンポーネントは、マイクロサービスシステムに基本的なサービスガバナンス機能を提供します。ケースを出発点として、これらのコンポーネントを浅いものから深いものへと導入し、これらのコンポーネントの動作原理をソースコードの観点から分析します。

第10章では、分散構成センターであるSpring Cloud Configを紹介し、Config ServerがローカルリポジトリとリモートGitリポジトリから構成ファイルを読み取る方法と、可用性の高い分散構成センターを構築し、メッセージバスを使用して構成ファイルを更新する方法について詳しく説明します。 。

第11章では、マイクロサービスシステムにリンク追跡コンポーネントが必要な理由を含むリンク追跡コンポーネントSpringCloudSleuthを紹介し、SpringCloudマイクロサービスシステムでケースの形でリンク追跡を使用する方法、および送信、保存、表示する方法を詳しく紹介します。チェーン道路データ。

第12章では、マイクロサービスシステムでのSpring Boot Adminの適用や、Spring Boot Adminでのセキュアログインコンポーネントの統合など、SpringBootAdminをケースの形で紹介します。

第13章から第15章では、SpringBootSecurityコンポーネントやSpringCloudOAuth2モジュールなど、SpringCloudマイクロサービスシステムのセキュリティ認証モジュールを紹介します。第13章では、SpringBootアプリケーションでSpringBoot Securityを使用する方法について詳しく説明し、第14章では、SpringCloudマイクロサービスシステムでSpringCloud OAuth2を使用してマイクロサービスのシステムセキュリティを保護する方法について説明します。第15章では、Spring CloudSpringCloudOAuth2とJWTは、マイクロサービスのシステムセキュリティを保護するためにマイクロサービスシステムで使用されます。

第16章では、Spring Cloudを使用して包括的なケースでマイクロサービスシステムを構築するプロセス全体を紹介します。これは、本の内容の要約と改良です。

ビッグデータアルゴリズム

ビッグデータアルゴリズムは、ビッグデータを効果的に活用するための基礎であり、ビッグデータや関連分野に関心のある人にとっては必見のコースでもあります。この論文は、ビッグデータ研究に従事する専門家によって書かれ、ビッグデータアルゴリズムの設計と分析の理論、方法、および技術を体系的に紹介します。

このホワイトペーパーは10章に分かれています。第1章ではビッグデータアルゴリズムの概要、第2章では時間サブリニアアルゴリズム、第3章では空間サブリニアアルゴリズム、第4章では外部メモリアルゴリズム、第5章ではビッグデータ外部メモリ検索について説明します。 、第6章ではメモリ不足のグラフデータアルゴリズムについて説明し、第7章ではMapReduceアルゴリズムの概要を説明し、第8章では一連の例を通じてMapReduceアルゴリズムについて説明し、第9章ではMapReduce以外のアルゴリズム設計方法を紹介し、第10章ではクラウドソーシングアルゴリズムについて説明します。 。

「Javaコアテクノロジーとインタビューガイド」

この記事は、Javaの基礎がなく、開発経験が3年未満のジュニアプログラマーが、高度な開発のためのほとんどのソフトウェア会社の一般的な基準に従ってシニアエンジニアにアップグレードするためのパスを提供し、プロジェクトの開発と試行に基づいて正確に説明します。レベルアップに欠かせないスキルポイント

具体的には、この記事ではプロジェクトの一般的な技術ポイントに焦点を当て、基本的な文法ポイント、オブジェクト指向、アイデア、コレクションオブジェクト、例外処理、データベース操作、JDBC 10操作、リフレクション、マルチスレッドの知識ポイントを再編成します。

さらに、この記事では、プロジェクト開発に非常に役立つ「デザインパターン」と「仮想マシンメモリチューニングの知識ポイント」についても説明します。このパートでは、純粋に理論的な説明はわかりませんが、多くの実用的な説明を見ることができます。運用ドライグッズ。

著者は、10年以上のソフトウェア開発経験と5年以上の技術面接経験を持ち、Javaの企業の一般的なニーズを知っています。同時に、著者は6年以上のトレーニング経験があり、半年以上で高度な開発にアップグレードするという事実を数えなかったゼロベースの学生やジュニアプログラマーを支援してきました。皆のための学習と面接の高度な道。

この記事では、プロジェクトのさまざまな一般的な知識ポイントのアプリケーションスキルについて説明するだけでなく、インタビューでこの能力を実証する方法についても説明します。さらに、いくつかの「価値のある」テクノロジー(ジュニアプログラマーがよく使用しますが、インタビューで使用)についても説明します。 、デザインパターンや仮想マシンなどの技術を説明する方法がわかりません)、著者は関連するレトリックを教えるだけでなく、「インタビュアーが言及せずにこのトピックを紹介する」スキルも教えてくれます。、また、面接官の観点から、履歴書の作成と送信、面接の準備、プロジェクトの経験の説明、給与の交渉など、面接プロセス全体のさまざまなスキルについて説明します。

第1章では、Javaの世界にあなたを連れて行きます

Javaの知識ポイントは、企業の雇用基準を満たすことから始めて、Javaコア開発(JavaCore)とJavaネットワーク開発(Java Web)の2つの部分に分けることができます。この記事では、主に前者に焦点を当てます。この記事の目的は、高度なJava開発プログラマーに必要な知識システムをできるだけ早く習得し、迂回を回避することです。したがって、この章では、Javaの開発とデバッグの一般的な手順を例として示すだけでなく、あなたはJavaを学ぶための高度な学習パスです。誰もが短時間で能力の向上を完了するのを助けるために。

第2章基本文法の一般的な技術的ポイントの集中的な紹介

この章では、プロジェクトで一般的に使用される基本的な使用法と見落とされがちな詳細のみを紹介し、ほとんどの初心者がすべての人に警告するために遭遇するいくつかの問題をリストします。

さらに、この章では、いくつかのケースを組み合わせて、オブジェクト指向のアイデアを使用する主なポイントを示します。これにより、理論レベルにとどまるのではなく、アプリケーションレベルからこのアイデアを理解して使用できるようになります。

第3章コレクションクラスと一般的なデータ構造

データ構造がデータの格納方法と編成方法を抽象的な形式で記述している場合、Javaコレクションクラスは、さまざまな種類の形式でビジネスデータを格納できる具体的なコンテナです。

Javaのコレクションクラスはプログラマーによって確実に使用されます。インタビュー中に、インタビュアーは間違いなくこの質問をします。コレクション部分の知識ポイントを合理的に適用できるかどうかは、パフォーマンスの最適化に直接関係します。

さらに、ジェネリックはコレクションクラスの不可欠な要素であり、この章では、ジェネリックの一般的な構文だけでなく、ジェネリックワイルドカードとジェネリック継承についても説明します。

第4章例外処理とI0操作

例外は構文エラーではなく、プログラマーの過失が原因ではなく、一連の保護メカニズムが原因です。データベースサーバーが壊れているなど、コードが実行されている環境に問題がある場合、この保護メカニズムは実行中の環境で例外をキャプチャし、適切な例外処理アクションを実行できます。

Javaプログラミングでは、例外処理はI0プログラミング、データベースプログラミングなどで一般的に使用されるため、この章ではJava10プログラミングの知識ポイントについても説明します。I0操作を通じて、プロジェクトでの例外処理スキルの一般的な使用法をさらに理解できる一方で、場合によっては、一般的な読み取りおよび書き込み操作を理解できます。

第5章SQLJDBCとデータベースプログラミング

プロジェクトの大部分はデータベースを使用します。この知識ポイントの重要性は自明であり、インタビュー中に必ず尋ねられます。

上級プログラマーの場合、SQLステートメントに関しては、単純な加算、削除、変更、およびクエリステートメントを記述できるだけでなく、プロジェクトのさまざまな要件を達成するために比較的複雑なステートメントを使用できる必要があります。JDBCプログラミングに関しては、基本的な追加、削除、変更、およびクエリ操作を実行するだけでなく、バ​​ッチ処理やトランザクションなどの高度な知識ポイントを理解する必要があります。さらに重要なことに、上級プログラマーは特定のデータベース調整機能も備えている必要があります。そうでない場合、アップグレードを完了できません。

この章では、上級プログラマーに対する上記の要件に対応して、最初にプロジェクトで使用できるSQLのスタイルを説明します。次に、基本的なJDBC構文に基づいたいくつかの高度な知識ポイントについて説明します。最後に、多くのSQLについて説明します。 -現在誰もが受け入れることができるいくつかのチューニング知識ポイント。

第6章リフレクションメカニズムとプロキシパターン

商用プロジェクトでは、リフレクションメカニズムの使用シナリオは多くありません.3年の実務経験を持つ一部の(ここではほとんどの場合)シニアプログラマーは、プロジェクトにリフレクション関連のコードを記述していない可能性があります。

シニアプログラマー(またはそれ以上のシニアアーキテクト)の観点から、反射メカニズムを見ると、2つの関連する高度な知識ポイントを考えるために「条件反射」することができます。1つは一般的な23タイプのプロキシモードです。1つはデザインです。システム構造を改善できるパターン。もう1つはSpringI00のコアコードです。リフレクションメカニズムは、Springの「依存関係の注入」と「アスペクト指向のプログラミング」機能の重要な基盤であると言えます。

したがって、リフレクションメカニズムはJavaの「重要なインフラストラクチャ」です。リフレクションメカニズムが提供するサービスに慣れていると、その存在を感じることはできませんが、このメカニズムがないと、多くのこと(少なくともSpring)では実行できません。それ。この章では、リフレクションの一般的な使用法について説明するだけでなく、プロキシパターンアプリケーションポイントでどのように機能するかについても説明します。

第7章マルチス​​レッドと並行プログラミング

マルチスレッドの利点は、同時操作にあります。たとえば、Webサイトのプロジェクトでは、複数のユーザーがいる場合、ユーザーごとにスレッドを開始してサービスを提供できます。マルチスレッド開発の難しさは、同時実行制御にもあります。たとえば、複数のスレッドを開始した後は、スレッド間の相互待機によるデッドロックの問題を回避するだけでなく、重要なリソースの同時操作を回避する必要があります(複数のスレッドによるアカウントオブジェクトなど))データの不整合が発生します。

現在、ほとんどの企業(特にインターネット企業)はJavaを使用してWebプロジェクトを開発しており、並行性の問題を考慮する必要があるため、多くの企業のインタビューでマルチスレッドが頻繁に見られます。

この点で、まず、スレッドの作成方法やスレッドの基本的な使用法などの基本的な知識ポイントを理解する必要があります。次に、スレッドセーフ、ロック、セマフォなどの高度な知識ポイントを習得する必要があります。

最後になりましたが、データの正確性を確保するために、スレッドが同時に動作するときに重要なリソースを正しく読み書きする方法のスキルを習得する必要があります。

第8章デザインパターンの作成は本当にあなたを助けます

プロジェクトを開発するとき、混乱する可能性のある多くの問題に遭遇しますが、これらの問題を抽象的に見ると、これらの「無限」の問題は、「シングルトンの作成方法」などの「有限」タイプに減らすことができます。オブジェクト」または「プロキシを介して他のリソースにアクセスする方法」。

これらの「限定タイプ」の問題に対応して、4つの「ビッグカウ」(GoF)は23のデザインパターンを提案しました。各パターンには、このパターンの適用可能なシナリオだけでなく、このタイプの問題に対する提案されたソリューションも示されています。そのため、デザインパターンが非常に人気があります。

ほとんどのプロジェクトでは、これらの23のパターンを適切に適用することで、問題の大部分(すべての問題ではない)を解決できます。

解決できない問題が発生した場合は、設計パターンの背後にある設計原則(単一責任原則やリスコフの置換原則など)を柔軟に使用して、問題を分析および解決することもできます。

第9章仮想マシンのメモリ最適化のヒント

仮想マシンはJavaプログラムの実行プラットフォームであり、仮想マシンのアーキテクチャを理解することで、Javaの実行フローを理解することができます。理解することは目的ではありません。目的は、通常の開発に直接役立ついくつかの「最適化」スキルを全員が習得できるようにすることです。

しかし、現実は決して楽観的ではありません。現在のトレーニングとインタビューの経験によると、3年未満の実務経験を持つプログラマーは基本的に「最適化」スキルを持っていません(一部の人々はそのようなスキルを持っていることさえ知らない)。その結果、彼らが書いたコードは多くの場合より多くのメモリを消費し、「メモリオーバーフロー」のためにシステムをクラッシュさせる深刻な問題さえあります。

この状況に応じて、この章では実際の戦闘経験について詳しく説明します。これにより、誰もが仮想マシンとメモリ管理の基本的な知識を理解できるだけでなく、メモリパフォーマンスの問題を分析して特定する方法も理解できます。メモリパフォーマンスを最適化する方法。最も役立つのは、この章では、インタビューでメモリ最適化スキルを示す方法も示します。

ほとんどのジュニアプログラマーは知識のこの部分を十分に理解していないため、これらの非常に重要な(パフォーマンスに関連しているため、非常に重要な)最適化スキルを十分に理解すると、仕事に応募するチャンスが得られます。大幅に改善されます。

第10章履歴書と面接で良い仕事を見つける

お互いを知り、自分自身を知り、1勝1敗のこの文は、仕事を見つけるために履歴書を提出するほとんどのプログラマーの現在の状況をよく反映しています。現在、比較的若い候補者の多くは、基本的には履歴書を幅広く配布することで面接や転職の機会を得ることができますが、面接の要点を知らず、会社の具体的な採用ニーズを分析しないというこの慣習は、減少するだけではありません。良い仕事を見つける可能性だけでなく、誰もが好きな会社を見逃してしまうので、彼らは自分の給料の要件を満たすことができる一般的な会社にしか「成し遂げる」ことができません。

採用会社は、まず履歴書を通じて、学歴が不十分な候補者やその他の厳しい条件の候補者を選別し、次に、その職務に関連する仕事の年数とプロジェクトの経験に焦点を当てます。キャンパス内にない限り、企業は経験豊富な従業員を探しています。つまり、関連するプロジェクトの経験を持つことは面接の機会を得るための重要な条件であり、これらの候補者だけが技術的なアルゴリズムプロジェクトやインテリジェンス関連の質問について尋ねられる機会があります。

この章では、最初に履歴書を通じて面接の機会を得るスキルを紹介し、次に面接でいくつかのスキルを示して、あなたが応募しているポジションに痕跡を残さずに適していることを証明します。Java Core、Java Web、データベース、およびアルゴリズムの特定の技術的な問題については、誰もが自分でそれらを収集でき、この本の付録にできるだけ多くの質問と回答をまとめることもできます。

Dockerの動作

この記事は3部に分かれています。

パート1では、Dockerとコンテナーの特性を紹介します。Dockerで公開されているソフトウェアをインストールおよびアンインストールする方法を理解するのに役立ちます。さまざまなコンテナ構造でさまざまな種類のソフトウェアを実行、管理、および接続する方法を学習します。最初の部分では、すべてのDockerユーザーが必要とする基本的なスキルを紹介します。パートI(第1章から第6章)では、リソースの分離とアクセス許可の制御、およびDockerコンテナーの基本原則に焦点を当てています。

第2部では、Dockerのパッケージ化とソフトウェアの配布を紹介し、さまざまなサイズのDockerイメージの基本的な仕組みと、さまざまなパッケージ化と配布の方法の調査について説明します。このセクションには、Dockerディストリビューションプロジェクトの詳細な分析も含まれています。第2部(第7章から第10章)では、画像をパッケージ化して構築する方法と、さまざまな画像配信インフラストラクチャの構築について詳しく説明しています。

第3部では、Docker Compose、Machine、およびSwarmプロジェクトをカバーする、マルチコンテナープロジェクトとマルチホスト環境を紹介します。このセクションでは、大規模なサーバーソフトウェアの規模を概算して、複数の実際のインスタンスを構築および展開する方法について説明します。パート3(第11章から第12章)では、Dockerコンテナーの複合操作、つまり、マルチコンテナー環境とマルチホスト環境の管理に焦点を当てています。

この記事は写真とテキストでいっぱいで、基本的な原則と特定のケースを組み合わせて、多くの良い実用的な機会を提供します。

SpringBoot2マイクロサービスプロジェクトを段階的に学ぶ

この記事では、実際のプロジェクトをメインラインとして取り上げ、Webアプリケーション開発における多くの一般的なテクノロジーとさまざまなスキルのSpringBoot2.0統合を段階的に紹介します。

第1章では、SpringBoot開発環境を最初からすばやく構築するためのガイドを読者に提供します。

第2章、第3章、第10章、および第13章では、MySQLおよびMongo DBデータベースにすばやくアクセスするための、Spring BootとDruid、Spring Data JPA、およびMyBatisとの統合を含むSpringBootデータアクセスアプリケーションを紹介します。

第4章から第6章では、ThymeleafテンプレートエンジンのSpring Boot統合、トランザクションの使用法、およびインターセプターとリスナーのアプリケーションに焦点を当てています。第7章から第9章では、主にRedisキャッシュとQuartzタイマーを使用し、Log4jロギングフレームワークを統合してEメールを送信するSpringBootを紹介します。

第11章と第12章では、主にSpring BootによるActiveMQと非同期呼び出しの統合、およびグローバル例外の使用について説明します。

第14章と第15章では、主にSpringBootアプリケーションの監視とアプリケーションのセキュリティについて説明します。

第16章と第17章では、ZookeeperでのSpringブートマイクロサービスの登録とDubboの使用、マルチ環境の構成と使用、およびTomcatでのアプリケーションのデプロイについて紹介します。第18章では、SpringBootの背後にある原則と実行フローについて説明します。

Javaデザインパターンの詳細

デザインパターンは、再利用される一連のコードデザインエクスペリエンスです。この記事は、特定のJava言語の基礎と特定のプログラミング経験を持つ読者を対象としています。

これは、読者のデザインモードの優れた思考モードを育成し、オブジェクト指向思考の理解を強化することを目的としています。

この記事は12の章に分かれています。

まず、デザインパターンにおけるインターフェイスと抽象クラスの重要性が強調され、デザインパターンにおけるリフレクションテクノロジーの適用が紹介されます。

次に、一般的に使用される23のデザインパターンのうち10を選択し、2つの作成パターン、4つの動作パターン、4つの構造パターンを含めて詳細に説明します。

この記事では、理論を徹底的に説明し、アプリケーションの例を詳しく説明します。デザインパターンの説明は、生活の中である種の一般的なものの分析、次にデザインパターンの詳細な分析、そして最後にアプリケーション研究から議論されるトピックにつながります。アプリケーション探索の部分のすべての例は、Java.JSP、JavaScript、Ajaxなどの実用的なテクノロジーをカバーするアプリケーションプロジェクトから派生しており、知識は幅広い範囲をカバーしています。

JAVAコアナレッジポイントの仕上げ

この記事は、Javaの基本原則から、アーキテクチャ、マイクロサービス、ビッグデータ、クラウドコンピューティングまで、30のパートに分かれています。それを百科事典と呼んでください!

概要

友達を学び、改善するためにGitHubが推奨するこれらの7つの技術文書が必要な

それがあなたが学ぶのを助けることができることを願っています!

おすすめ

転載: blog.csdn.net/wdjnb/article/details/124365633