1つは、Javaの基本です
1. string、stringbulider、stringbufferの違い
2.ArrayList、LinkedList、Vector地区
3.Class.forNameとclassloaderの違い
JavaのClass.forNameとclassloaderの両方を使用して、クラスをロードできます。
Class.forNameは、クラスの.classファイルをjvmにロードするだけでなく、クラスを解釈し、クラス内の静的ブロックを実行します。ここでは、ビッグデータ交換サークルqグループをお勧めします:813383827。
クラスローダーは、.classファイルをjvmにロードするだけで、静的なコンテンツは実行せず、newInstanceの静的なブロックのみを実行します。
4.Javaデザインパターン
23のデザインパターン。
デザインパターン:これは、デザインの問題に対する一般的な解決策です。
デザインパターンを使用する:特定のアプリケーションに適用して、同様の問題を解決できます。
デザインパターンの使用は、コードを再利用可能にし、他の人が理解しやすくし、コードの信頼性を確保することです。
5.mysqlインデックスと対応するデータ構造の利点
インデックスを作成すると、システムのパフォーマンスが大幅に向上します。利点は次のとおりです。
まず、一意のインデックスを作成することで、データベーステーブルのデータの各行の一意性を確保できます。
次に、インデックスを作成する主な理由であるデータ取得を大幅に高速化できます。
第3に、テーブルとテーブル間の接続を高速化できます。これは、データの参照整合性を実現するという点で特に意味があります。
第4に、データ取得にグループ化と並べ替えの句を使用すると、クエリでのグループ化と並べ替えの時間も大幅に短縮できます。
第5に、インデックスを使用することにより、クエリプロセスで最適化ハイダーを使用して、システムのパフォーマンスを向上させることができます。
mysqlインデックスのデータ構造はB +ツリーです
6.CocurrentHashMapの基礎となる構造
CocurrentHashMapは、Segment配列とHashEntry配列で構成されています。セグメントはリエントラントロック(ReentrantLock)であり、データセグメント競合ロックとして、各HashEntryにはリンクリスト構造要素があります。ここにビッグデータ交換サークルqスカートがあります:894951460
ハッシュアルゴリズムを使用してインデックスを取得し、属性データセグメントを決定します。これは、変更中に競合によって取得する必要があるロックに対応します。
ロックセグメンテーションテクノロジーは、データセットをセグメント化することであり、各セグメントはロックをめぐって競合し、異なるデータセグメント内のデータをめぐってロック競合が発生しないため、高い同時アクセスの効率が効果的に向上します。
使用される共有変数はすべてvolatileキーワードで変更されるため、CocurrentHashMapをgetメソッドでロックする必要はありません。これにより、スレッド間の共有変数の可視性が証明されます(読み取りごとにキャッシュとメモリを同期し、メモリから直接取得します。値、
これはアトミック操作ではありませんが、JAVAメモリモデルの原則の前に発生するため、揮発性フィールドへの書き込み操作は読み取り操作に先行します。
ダーティリードではないことを保証できます)、変数がスレッド間のメモリの可視性を提供できるようにするために揮発性であり、プログラム実行結果の並べ替えを禁止します(キャッシュ最適化の効果が減少するため)
7.ThreadLocalの基礎となる構造
8.HashMapの基礎となる構造
9.ハッシュの競合を解決するJavaの4つの方法
10. JVMの具体的な詳細(メモリ構造、GCアルゴリズム、GCツール、参照メソッドなど)
2.データ構造とアルゴリズム
1.二分木プレオーダー、ミドルオーダー、および後続のトラバーサルメソッド(再帰的および非再帰的)
2.二分木探索法の深さと幅
3.二分木探索の場合のすべての連続するノードの最大値
4.配列の可能なすべてのサブ配列を見つけます
5.数値を指定して、この数値を満たすように順序付けされた配列内の2つの数値の合計を見つけます(2つの順序付けられていない配列に拡張できます)
6.配列の2番目に大きい値を見つけます
7.大きなファイルのソートの問題(メモリにロードできません)
8.クイックソート、マージソート、バブルソート、選択ソート(複雑さは何ですか)
9.ハッシュ、HashMap、インデックス(bツリー/ b +ツリー)の時間計算量はどれくらいですか?
ハッシュテーブルの時間計算量はO(1)です。
最も理想的なケースでは、HashMapの時間計算量はO(1)です(この場合、ハッシュテーブルにはデータの競合はありません)。
それ以外の場合、時間計算量はO(n)です(この場合、主にリンクリストをクエリする時間です)
二分探索木のクエリの時間計算量はO(logN)です。
3つのビッグデータフレームワーク
1.hadoop
HDFS、Yarn、MapReduce、特にMapReduceの原理と実行プロセスでは、ソースコードを組み合わせて何かを言うのが最善です。
2.Flume + Kafkaリアルタイムストリーム収集フレームワーク
flumeのワークフロー、ソース、チャネル、シンク、インターセプター、およびカスタムソース、カスタムシンク、カスタムインターセプターに精通している
Kafkaの主要コンポーネント(ブローカーノード、レプリカ、パーティション)、Kafka(kaffkaの生産および消費モデル)の動作原理、Kafkaおよびその他のMQに精通している
比較状況、カフカはどのようにして3つの消費状態を保証しますか(最大で1回、少なくとも1回、正確に1回)
Kafkaで発生する可能性のある特定のネットワークボトルネックと飼育係のGC状況を組み合わせる
3.ストーム
ストーム固有の構造(注ぎ口+ボルト)、ストームチューニング固有の方法、ストーム高信頼性を確保する方法、確認メカニズム、ストームなだれソリューション、
pv、uv、dvを計算するためのstromの特定の方法(setメソッドを使用しない方が良いです)
4.Hbase
hbaseの特定のアーキテクチャ(アーキテクチャ図)、hbaseの読み取りおよび書き込みプロセス(バルクロードに重点を置く)、hbaseテーブルと行キーの設計(ホットな問題の防止)、hbaseホットスポット
問題によって引き起こされる害
5.金曜日
redisの使用方法、redisデータ構造タイプ、redisビットマップ構造、redis永続性、redis除去メカニズム、redisキャッシュの内訳
6.スパーク
Sparkは、タスクの実行プロセス(ジョブ分割、ステージ分割、タスク生成、リソーススケジューリング、詳細なシャッフルプロセスなど)、Sparkコアの古典的なプログラミング(Sparkコアの2次ソート、上位NのSparkコアのグループ化)を送信します。 、spark sqlの最適化、spark sqlのヒープ外メモリオーバーフロー、sparkの最適化(約7または8)
4.プロジェクト固有の問題
1.クラスターリソース
2.データ量
3.特定のプロジェクト(および特定のプロジェクト、ソリューションで発生した問題)
5、その他
1.rpcフレームワーク通信プロトコル
2.いくつかの特定の問題(製品の設計と分析を含む)についてのあなたの見解について話します
結論
ご覧いただきありがとうございます。何か欠点がありましたら、批判して訂正してください。
情報を入手する
今回は、データウェアハウス/ソースコード分析/ Hadoop / Flink / Spark / Hive / hbase / Flink / kylinとインタビューリソースをまとめた無料の学習グループをすべての人にお勧めします。
ビッグデータ開発テクノロジーに興味のある学生は、Qグループに参加することを歓迎します:813383827、初心者であろうと大きな牛であろうと、私はそれを歓迎します。ダニエルが編集した高効率の学習ルートとチュートリアルのセットもあります。無料であなたと共有し、同時に毎日ビデオ情報を更新します。
最後に、皆さんが早期に学習に成功し、満足のいくオファーを受け取り、迅速な昇進を得て給与を上げ、人生の頂点に乗り出すことを願っています!!