私の知識構造
今日のインタビュー、多くのことを感じ。
私は、彼らはあなたの知識の株式を取るために、この機会を利用し、覚えていないための言い訳として使われていることがわかりました。
プログラミング
JVM
JVMの仕様
- フィールド
- フィールドは、それを宣言したクラスによって所有されます。
- 解像度:自己 - >スーパ - >スーパー
- バイトコードを呼び出します
- INVOKEVIRTUAL
- 時間法スロットをコンパイル
- invokestatic
- invokespecial
- インスタンス初期化メソッド
- 現在のクラスのメソッド
- そのスーパータイプのメソッド
- invokeinterface
- invokedynamicの
lang.invoke.CallSite
- INVOKEVIRTUAL
JRE
- 地図
- util.HashMap
- 読み込み元
- ハッシュ表
- 2×容量のためにサイズを変更
- 容量×しきい値= loadFactor
- リンクされたリストのノードまたは赤黒ツリーノード
- しきい値8と6
- 使用して
instanceof
分割します
- util.TreeMap
- 赤黒木
- util.concurrent.ConcurrentHashMap
- CopyOnWriteArrayListと同様に、CASを使用して
- 使用
#transferIndex
楽観的ロックとして - リンクされたリストのノードまたは赤黒ツリーノード
- しきい値8と6
- 使用して
~.Node#hash
分割します
- ノードとノードの予約を転送
- つづきます
- util.HashMap
ホットスポットVM
- メモリレイアウト
- 使用メモリ "のmalloc、reallocのを、自由な"
Unsafe
能力- 手動メモリ管理
- IOのために使用
- 以下を検証します
- メタスペース
- ヒープ
- 旧世代
- 若い世代
- エデンスペース
- Suvrvivor1 / 2
- 使用メモリ "のmalloc、reallocのを、自由な"