阿里巴巴在線筆試題

1,寫一個單例(延遲加載,高性能)java

2,下面這個題目是答案mysql

/**
     * 
     * @param pattern
     *            aabb
     * @param str
     *            北京 中國 北京 中國
     * @return
     */
    public boolean match(String pattern, String str) {
        assert pattern != null && pattern != "" && str != null && str != "";
        String strArr[] = str.split(" ");
        String patternArr[] = pattern.split("");
        if (patternArr.length != strArr.length)
            return false;
        StringBuilder result = new StringBuilder();
        Map<String, String> map = new HashMap<String, String>();
        for (int i = 0; i < strArr.length; i++) {
            map.put(strArr[i], patternArr[i]);
        }
        for (int i = 0; i < strArr.length; i++) {
            result.append(map.get(strArr[i]));
        }
        return pattern.equals(result.toString());
    }面試

3,實現阻塞鎖,和非阻塞鎖redis

 

----------------------------下面是電話面試題目--------------------------------------算法

 

  • HashMap和Hashtable的區別sql

  • 實現一個保證迭代順序的HashMap數據庫

  • 說一說排序算法,穩定性,複雜度編程

  • 說一說GC設計模式

  • 職業規劃安全

  • ---------------------------------------------------------------------------------------------------------------------

  • (1)自我介紹。

    (2)JVM如何加載一個類的過程,雙親委派模型中有哪些方法?

    (3)HashMap如何實現的?

    (4)HashMap和Concurrent HashMap區別, Concurrent HashMap 線程安全嗎, Concurrent HashMap如何保證 線程安全?

    (5)HashMap和HashTable 區別,HashTable線程安全嗎?

    (6)進程間通訊有哪幾種方式?

    (7)JVM分爲哪些區,每個區幹嘛的?

    (8)JVM如何GC,新生代,老年代,持久代,都存儲哪些東西?

    (9)GC用的引用可達性分析算法中,哪些對象可做爲GC Roots對象?

    (10)快速排序,過程,複雜度?

    (11)什麼是二叉平衡樹,如何插入節點,刪除節點,說出關鍵步驟。

    (12)TCP如何保證可靠傳輸?三次握手過程?

    (13)TCP和UDP區別?

    (14)滑動窗口算法?

    (15)Linux下如何進行進程調度的?

    (16)Linux下你經常使用的命令有哪些?

    (17)操做系統什麼狀況下會死鎖?

    (18)經常使用的hash算法有哪些?

    (19)什麼是一致性哈希?

    (20)如何理解分佈式鎖?

    (21)數據庫中的範式有哪些?

    (22)數據庫中的索引的結構?什麼狀況下適合建索引?

    (23)Java中的NIO,BIO,AIO分別是什麼?

    (24)用什麼工具調試程序?JConsole,用過嗎?

    (25)如今JVM中有一個線程掛起了,如何用工具查出緣由?

    (26)線程同步與阻塞的關係?同步必定阻塞嗎?阻塞必定同步嗎?

    (27)同步和異步有什麼區別?

    (28)線程池用過嗎?

    (29)如何建立單例模式?說了雙重檢查,他說不是線程安全的。如何高效的建立一個線程安全的單例?

    (30)concurrent包下面,都用過什麼?

    (31)經常使用的數據庫有哪些?redis用過嗎?

    (32)瞭解hadoop嗎?說說hadoop的組件有哪些?hdfs,hive,hbase,zookeeper。說下mapreduce編程模型。

    (33)你知道的開源協議有哪些?

    (34)你知道的開源軟件有哪些?

    (35)你最近在看的書有哪些?

    (36)你有什麼問題要問我嗎?

    (37)瞭解哪些設計模式?說說都用過哪些設計模式

    (38)如何判斷一個單鏈表是否有環?

    (39)操做系統如何進行分頁調度?

    (40)匿名內部類是什麼?如何訪問在其外面定義的變量?

  • -------------------------------------------------------------------------------------------------------------

1)自我介紹,作過什麼項目。

(2)java虛擬機的區域如何劃分,每個區的動能,這一塊自由發揮。

(3)雙親委派模型中,從頂層到底層,都是哪些類加載器,分別加載哪些類?

(4)有沒有可能父類加載器和子類加載器,加載同一個類?若是加載同一個類,該使用哪個類?

(5)HashMap的結構,get(),put()是如何實現的?HashMap有哪些問題?

(6)ConcurrentHashMap的get(),put(),又是如何實現的?ConcurrentHashMap有哪些問題? ConcurrentHashMap的鎖是讀鎖仍是寫鎖?

(7) HashMap與HashTable的區別

(8)sleep()和wait()分別是哪一個類的方法,有什麼區別?synchronized底層如何實現的?用在代碼塊和方法上有什麼區別?

(9)什麼是線程池?若是讓你設計一個動態大小的線程池,如何設計,應該有哪些方法?

(10)什麼是死鎖?JVM線程死鎖,你該如何判斷是由於什麼?若是用VisualVM,dump線程信息出來,會有哪些信息?這一塊問的不少....問的我懵了. 由於並無實際操做過 = =

(11)查看jvm虛擬機裏面堆、線程的信息,你用過什麼命令?我只用過圖形界面VisualVM。。。

(12)垃圾回收算法有哪些?CMS知道嗎?如何工做的?

(13)數據庫中什麼是事務?事務的隔離級別?事務的四個特性?什麼是髒讀,幻讀,不可重複讀?

(14)數據庫索引的結構有哪些?我說B樹和B+樹,他說只有這兩個嗎。我又說全文倒排索引。而後介紹B+樹的結構。

(15)數據庫中的分頁查詢語句怎麼寫?

(16)什麼是一致性哈希?用來解決什麼問題?

(17)Redis的存儲結構,或者說如何工做的,與mysql的區別?有哪些數據類型?

(18)項目中用到redis,爲何選用redis,瞭解其餘NoSQL數據庫嗎?在你的項目中是如何運用redis的?key是什麼,value是什麼?

(19)歸併排序的過程?時間複雜度?空間複雜度?

(20)你日常用什麼排序?快速排序。說說在那些場景下適用,哪些場景下不適用。

(21)你在項目中作什麼?由於我用到Solr,他就問我Solr是如何工做的?

相關文章
相關標籤/搜索