原创 七、在LinkedHashMap中,String a = new String("abcd");String b = new String("abcd");都作爲key,會如何?
1、什麼是LinkedHashMap? LinkedHashMap是HashMap的一個子類,它保留插入的順序,即輸出的順序和輸入時的順序相同,允許鍵值對爲空,key重複會覆蓋,value允許重複,並且有序,安全。 Linked
原创 十一、JVM調優-命令篇
運行JVM自帶的命令可以方便的在生產監控和打印堆棧的日誌信息幫忙我們來定位問題!雖然JVM調優成熟的工具已經有很多:jconsole,大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生產環境出現問題的時候,一
原创 六、遍歷HashMap的方法。
1、先遍歷Map集合中所有的鍵,再根據鍵獲取相應的值。 Set keySet = map.keySet(); //調用Map對象的keySet()方法,獲取鍵的集合 Iterator it = keySet.iterat
原创 十、JVM常用啓動參數
一、JVM啓動參數共分爲三類: 1.其一是標準參數(-),所有的JVM實現都必須實現這些參數的功能,而且向後兼容; 2.其二是非標準參數(-X),指的是JVM底層的一些配置參數,這些參數在一般開發中默認即可,不需要任何配置。但是
原创 19、多線程
在日常生活中,很多事情都是同時進行的。例如,人可以同時進行呼吸、血液循環、思考問題等活動。在使用計算機的過程中,應用程序也可以同時運行,用戶可以使用計算機一邊聽歌,一邊打遊戲。在應用程序中,不同的程序塊
原创 八、JVM內存基本結構
Java程序運行在JVM上,可以吧JVM理解成Java程序和操作系統之間的橋樑,JVM實現了Java的平臺無關性,由此可見JVM的重要性。 一個完整的Java程序運行過程會涉及到以下內存區域: (1)寄存器:JVM內部虛擬寄存器,
原创 十四、數據機構---堆排序
1、堆是一種重要的數據結構,爲一棵完全二叉樹, 底層一般用數組存儲數據。假設某個元素爲序號爲i(Java數組從0開始,i爲0到n-1),如果它有左子樹,那麼左子樹的位置是2i+1,如果有右子
原创 十五、數據結構---紅黑樹
二叉查找樹 二叉查找樹,也稱有序二叉樹(ordered binary tree),或已排序二叉樹(sorted binary tree),是指一棵空樹或者具有下列性質的二叉樹: 若任意結點的左子樹不空,則左子樹上的所有
原创 二、解決Hash衝突的主要方法
二、解決Hash衝突的主要方法 1、幾個概念 (1)什麼是hash表? 散列表(Hash table,也叫哈希表),是根據鍵值對直接進行訪問的數據結構。它通過建立關鍵字和存儲位置之間的一個確定的對應關係f,使得,每
原创 十六、數據結構---鏈表
一、鏈表 概念: 鏈式存儲結構是基於指針實現的。我們把一個數據元素和一個指針稱爲結點。 數據域:存儲數據元素信息的域。 指針域:存儲直接後繼位置的域。 1.鏈式存儲結構是用指針
原创 十三、數據結構---B+樹
十四、數據結構---B+樹 一、B-樹 1、什麼是B-樹 具體講解之前,有一點,再次強調下:B-樹,即爲B樹。因爲B樹的原英文名稱爲B-tree,而國內很多人喜歡把B-tree譯作B-tree,
原创 十二、JVM如何利用工具來監控調優前後的性能變化。
工具做爲圖形化界面來展示更能直觀的發現問題,另一方面一些消耗性能的分析(dump文件分析)一般也不會在生產直接分析,往往dump下來的文件達1G左右,人工分析效率低,因此利用工具來分析jvm相關問題,常常可以達到事半功倍的效果來
原创 三、如何實現線程安全的HashMap
1、爲什麼HashMap線程不安全? transient Node<K,V>[] table; static class Node<K,V> implements Map.Entry<K,V> { final
原创 四、ArrayList和LinkedList內部的實現大致是怎樣的?
1、ArrayList集合 ArrayList是List接口的一個實現類,它是程序中最常見的一種集合。在ArrayList內部封裝了一個長度可變的數組對象,當存入的元素超過數組長度時,ArrayList會在內存分配一個更大的
原创 九、JVM垃圾算法(GC算法)和垃圾回收器
1、垃圾收集算法 GC最基礎的算法有三種:標記-清除算法,複製算法,標記-壓縮算法,我們常用的垃圾回收器一般都採用分代收及算法。 (1)標記-清除算法 標記-清除算法,如它的名字一樣,