面試題記錄

String底層原理

  1. 常量
    形如下面這類字符串,將會被直接存儲進入常量區中。
String s = "123";
String s = new String("123");
  1. 在程序進行編譯的過程中,會將能夠確認的字符串同樣存入常量區中。
String s = "1" + "2";

如上,常量區中會存儲"1", “2”, “12”。

  1. +在拼接字符串時的作用
    在使用+拼接字符串時,會隱式的構造StringBuilder對字符串進行構造,並將結果保存在Java堆中。

Integer和int的區別

Integer是對int的一個簡單包裝。

class Integer {
    private final int val;
    ...
}

Final方法

  • 在修飾類時,該類不能被繼承。
  • 在修飾變量時,該變量只能夠被賦值一次。僅限該變量的值,而變量引用的值可以被修改
  • 修飾方法時,該方法不能夠被重寫。

紅黑樹與AVL樹

AVL樹是帶有平衡條件的二叉查找樹,一般是用平衡因子差值判斷是否平衡並通過旋轉來實現平衡,左右子樹樹高不超過1,和紅黑樹相比,AVL樹是嚴格的平衡二叉樹,平衡條件必須滿足(所有節點的左右子樹高度差不超過1)。AVL樹適合用於插入與刪除次數比較少,但查找多的情況。

一種二叉查找樹,但在每個節點增加一個存儲位表示節點的顏色,可以是紅或黑(非紅即黑)。通過對任何一條從根到葉子的路徑上各個節點着色的方式的限制,紅黑樹確保沒有一條路徑會比其它路徑長出兩倍,因此,紅黑樹是一種弱平衡二叉樹(由於是弱平衡,可以看到,在相同的節點情況下,AVL樹的高度低於紅黑樹),相對於要求嚴格的AVL樹來說,它的旋轉次數少,所以對於搜索,插入,刪除操作較多的情況下,我們就用紅黑樹。

思考題

有1TB的訪問記錄,求數據中出現次數最多的前20條訪問記錄是什麼?

發佈了21 篇原創文章 · 獲贊 2 · 訪問量 4309
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章