原创 jvm的內存溢出異常

  1.jvm的內部體系結構淺析  2.jvm的幾個運行時數據區域  3.jvm的內存溢出異常    在Java虛擬機規範的描述中,除了PC(程序計數器)寄存器外,虛擬機內存的其他幾個運行時區域都有發生OutOfMemoryError異常的

原创 java內存分配和String類型的深度解析

一、引題     在java語言的所有數據類型中,String類型是比較特殊的一種類型,同時也是面試的時候經常被問到的一個知識點,本文結合java內存分配深度分析關於String的許多令人迷惑的問題。下面是本文將要涉及到的一些問題,如果讀者

原创 算法的時間複雜度分析

1.算法耗費的時間、語句頻度、輸入規模在實際中,一個算法所需耗費的時間  =  算法中所有語句的執行時間之和 而,每條語句的執行時間 =  每條語句執行一次所需時間  *  每條語句的執行次數(語句頻度)因爲每條語句執行一次所需時間取決於機

原创 ConcurrentHashMap原理分析

ConcurrentHashMap的目標是實現支持高併發、高吞吐量的線程安全的HashMap。當然不能直接對整個hashtable加鎖,所以在ConcurrentHashMap中,數據的組織結構和HashMap有所區別大家都知道,HashM

原创 Java併發編程:volatile關鍵字解析

轉自:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile這個關鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個備受爭議的關鍵字,因爲在程序中使用它往往會

原创 數據結構常用排序(java)

數據結構排序算法的概念是從網上抄錄的:基本概念:1、  排序:按照一定的關鍵字,將一個序列排列成想要得到的一個新的序列。2、  內部排序和外部排序:整個排序過程完全在內存中進行,叫做內部排序。數據量較大需要藉助外部存儲設備才能完成,叫做外部

原创 Java併發編程:深入剖析ThreadLocal

轉自:http://www.cnblogs.com/dolphin0520/p/3920407.html 一.對ThreadLocal的理解  ThreadLocal,很多地方叫做線程本地變量,也有些地方叫做線程本地存儲,其實意思差不多。可

原创 爲什麼在定義hashcode時要使用31這個數呢

public int hashCode() {     int h = hash;   int len = count;   if (h == 0 && len > 0) {   int off = offset;   char val[]

原创 數據結構歸併排序java實現

思想:假設初始序列右n個記錄,首先將這n個記錄看成n個有序的子序列,每個子序列的長度爲1,然後兩兩歸併,得到n/2向上取整 個長度爲2(n爲奇數時,最後一個序列的長度爲1)的有序子序列。在此基礎上,在對長度爲2的有序子序列進行兩兩歸併,得到

原创 HashMap的工作原理

hashmap本質數據加鏈表。根據key取得hash值,然後計算出數組下標,如果多個key對應到同一個下標,就用鏈表串起來,新插入的在前面。看3段重要代碼摘要:1.     public HashMap(int initialCapacit

原创 private和protected不能修飾外部類的原因

大家都知道類的成員變量和方法可以使用private和protected修飾。使用private修飾,表示該類的成員只能在類的內部訪問。使用protected修飾,表示該類的成員可以被類的內部、同包下的其它類以及該類的子類訪問。從組織結構來分