ホームページ >バックエンド開発 >PHPチュートリアル >Java シニア ソフトウェア エンジニアの面接シラバス
Java シニア ソフトウェア エンジニアの面接シラバス
シニア開発エンジニアのポジションに応募したい場合は、Java の基本的な知識を知っているだけでは十分ではなく、一般的なデータ構造、アルゴリズム、ネットワーク、オペレーティング システム、その他の知識も知っておく必要があります。 。したがって、この記事では特定の技術については説明しません。筆者が大手企業に応募した経験をもとに、大手企業の上級 Java 開発エンジニア職の評価概要をまとめました。
現在、『Java XX Collection』のような本が発売されていますが、その内容はJavaの最も基本的な部分を中心に解説されており、最も深刻なのは間違った内容が多く含まれていることです。非常に誤解を招きます。さらに、インターネット上には Java の面接に関するさまざまな質問があり、その多くは Java 言語の基本に焦点を当てています。実際、上級開発エンジニアのポジションに応募したい場合は、Java の基本的な知識を知っているだけでは十分ではなく、一般的なデータ構造、アルゴリズム、ネットワーク、オペレーティング システムなどについても知っておく必要があります。したがって、この記事では特定の技術については説明しません。筆者が大手企業に応募した経験をもとに、大手企業の上級 Java 開発エンジニア職の評価概要をまとめました。
1 Javaの基礎
1.1 CollectionとMap
(1) CollectionとMapの継承体系をマスターする。
(2) ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、TreeMap、HashTableの特徴と実装原理を習得する。
(3) CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap の実装原則と適用可能なシナリオをマスターします。
1.2 IO
(1) InputStream、OutputStream、Reader、Writerの継承方式をマスターする。
(2) バイトストリーム(FileInputStream、DataInputStream、BufferedInputStream、FileOutputSteam、DataOutputStream、BufferedOutputStream)と文字ストリーム(BufferedReader、InputStreamReader、FileReader、BufferedWriter、OutputStreamWriter、PrintWriter、FileWriter)をマスターし、上手に使いましょう。
(3) NIOの実装原理と使い方をマスターする。
1.3 例外
(1) Throwable 継承システムをマスターします。
(2) 異常の動作原理をマスターする。
(3) 一般的なチェック例外 (FileNotFoundException など)、未チェック例外 (NullPointerException など)、およびエラー (IOError など) を理解します。
1.4 マルチスレッド
(1) Executor が作成できる 3 種類のスレッド プール (JAVA8 では 1 種類追加、合計 4 種類) の特徴と適用範囲をマスターします。
(2) マルチスレッド同期の仕組みをマスターし、上手に使いましょう。
1.5 ソケット
(1) ソケット通信の原理をマスターします。
(2) マルチスレッドと Socket を組み合わせたプログラミングに熟練しています。
2 Java仮想マシン
2.1 JVMのメモリ領域分割
(1) プログラムカウンタ、ヒープ、仮想マシンスタック、ローカルメソッドスタック、メソッド領域(JAVA8で削除)、メタスペース(JAVA8で新規)の機能と基本原理をマスターする)。
(2) ヒープの分割をマスターします: 新世代 (Eden、Survivor1、Survivor2) と旧世代の機能と動作原理。
(3) マスター JVM メモリ パラメータの設定と調整。
2.2 クラスのロード
(1) クラスのロード段階(ロード、リンク(検証、準備、解析)、初期化、使用、アンロード)をマスターします。
(2) クラスローダーとそのアプリケーションの分類 (起動クラスローダー、拡張クラスローダー、アプリケーションクラスローダー、カスタムローダー) をマスターします。
3 J2EE
(1) JSP 組み込みオブジェクト、アクション、関連機能、および動作原理をマスターします。
(2) サーブレットの特徴と動作原理をマスターします。
(3) Spring フレームワークの IOC と AOP 実装原則 (リフレクションと動的プロキシ) をマスターします。
(4) 少なくとも 1 つの MVC フレームワーク (Spring MVC、Struts など) の動作原理をマスターし、それを上手に使用します。
(5) 少なくとも 1 つの ORM フレームワーク (Hibernate、MyBatis など) の動作原理をマスターし、それを上手に使用します。
4つのデータ構造とアルゴリズム
(1) 線形表と木の特徴を理解し、上手に使いましょう。
(2) 一般的なソートと検索アルゴリズムをマスターする: 挿入ソート (直接挿入ソート、ヒル ソート)、選択ソート (直接選択ソート、ヒープ ソート)、交換ソート (バブル ソート、クイック ソート)、マージ ソート、逐次検索、バイナリ検索、ハッシュ検索。
(3) プログラミングの問題を解決するために、一般的な並べ替えおよび検索アルゴリズムのアイデアを使用することに熟達しています。
(4) いくつかの基本的なアルゴリズムを理解します: 貪欲アルゴリズム、分割統治戦略、動的プログラミング。
5 コンピュータネットワーク
(1) ネットワークの階層構造と各層の機能特性を習得する。
(2) TCP/IPの通信原理(3ウェイハンドシェイク、4ウェイウェーブ)をマスターする
6 データベース
(1) 複雑なSQL文の書き方をマスターする。
(2) データベースの最適化をマスターします(SQLレベルとテーブル設計レベル)。
(3) 少なくとも 1 つのデータベース製品をマスターします。
(4) 同時実行性が高くビッグデータの状況下でのデータベース開発に精通していること。
7 Webテクノロジー
(1) AJAXの動作原理をマスターします。
(2) 少なくとも 1 つの JS フレームワーク (JQuery など) に精通していること。
8つのデザインパターン
(1) 一般的なデザインパターンに慣れる。
(2) デザインパターン理論を実際の開発に応用していきます。
9 Linux
(1) 一般的な Linux コマンドの使用に習熟する。
(2) Linux オペレーティング システムの基本的な概念と機能を理解します。
(3) シェルスクリプトに精通している。
10 オペレーティングシステム
(1) オペレーティングシステムのプロセス管理を習得する。
(2) OSのI/Oを理解する。
11 正規表現
(1) 一般的な正規表現記号をマスターします。
(2) 正規表現を巧みに使用して、実際的な問題 (電話番号、電子メール アドレス、ドメイン名の照合など) を解決します。
Java エンジニアに関連する上記のインタビューの質問を読んだ後、他に何か付け加えることはありますか?
高羅峰兄弟は弟子を無料で募集しています: http://www.hdb.com/party/lzcw-comm.html
LAMP兄弟のオリジナルPHPビデオチュートリアルCD/「PHPを詳しく説明する」を無料で受け取ります。お問い合わせください。詳細については、公式 Web サイトのカスタマー サービス:
http://www.lampbrother.net
【Brothers IT Education】PHP、Linux、HTML5、UI、Android およびその他のビデオ チュートリアル (コースウェア + ノート + ビデオ) を学びましょう!
ネットワークディスクチュートリアルのダウンロード: http://pan.baidu.com/s/1sjOJiAL
上記は、Java シニア ソフトウェア エンジニアの面接シラバスを、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。