原创 python3 關於多重繼承時MRO列表的順序

MRO(Method Resolution Order),中文名:方法解析順序,用於顯示python3在多繼承時,子類調用父類的路徑。 解決了多繼承時遇到的二義性的問題。 二義性問題: 1、有兩個基類A和B,A和B都定義了方法f()

原创 HashMap源碼分析

本文參考:http://blog.csdn.net/happy_horse/article/details/52316865 關於HashMap,你應該知道的幾個知識點: HashMap多線程的條件競爭; 不可變對象的好處; 爲什麼S

原创 LinkedList源碼分析

本文源代碼版本爲1.7 LinkedList:以雙向鏈表實現。鏈表無容量限制,但雙向鏈表本身使用了更多空間,也需要額外的鏈表指針操作。 注意:構建的鏈表不帶頭節點。 鏈表的節點代碼: private static class Node<

原创 Java中的對象鎖和類鎖

Java中的鎖:(簡要描述) 多線程的線程同步機制實際上是靠鎖的概念來控制的。 在Java程序運行時環境中,JVM需要對兩類線程共享的數據進行協調: 1)保存在堆中的實例變量 2)保存在方法區中的類變量 這兩類數據是被所有線程共享的

原创 java中fail-fast 和 fail-safe的區別

原文地址:http://blog.csdn.net/ch717828/article/details/46892051 在我們詳細討論這兩種機制的區別之前,首先得先了解併發修改。 1.什麼是同步修改? 當一個或多個線程正在遍歷一個集合

原创 ArrayList源碼分析

本文分析的源碼版本是1.7 ArrayList繼承了AbstractList並實現了List,RandomAccess, Cloneable, java.io.Serializable 接口, AbstractList提供了List接

原创 String源碼分析

參照:http://www.hollischuang.com/archives/99的文章 String類實現了Serializable, Comparable, CharSequence接口. public final class St

原创 Java深拷貝與淺拷貝

轉載:http://blog.csdn.net/wangnanwlw/article/details/52300117 一、引言 對象拷貝(Object Copy)就是將一個對象的屬性拷貝到另一個有着相同類類型的對象中去。在程序中拷貝對象

原创 Integer源碼分析

參考:http://www.hollischuang.com/archives/1058 類定義 public final class Integer extends Number implements Comparable<Intege

原创 集合繼承關係圖解

參考:http://www.cnblogs.com/jing99/p/7057245.html 集合的特點: 用來存儲不同類型的對象(基本數據類型除外),存儲長度可變。 Java集合中實際存放的只是對象的引用,每個集合元素都是一個引用變

原创 LinkedHashMap簡單解析

源碼版本1.7 本文參考:http://www.cnblogs.com/CarpenterLee/p/5541111.html 1、內部結構 節點的結構: 整體結構: 插入過程: 1、從table的角度看,新的entry需

原创 Mysql (InnoDB引擎)聚集索引和輔助索引

聚集索引: InnoDB存儲引擎表是索引組織表,即按照主鍵的順序存儲數據。 聚集索引(clustered index)就是按照每張表的主鍵構造一棵B+樹,樹中的葉子節點存放着表中的行記錄數據,因此,也將聚集索引的葉子節點稱爲數據頁;非葉

原创 HashMap與Hashtable區別

(1)兩者最主要的區別在於Hashtable是線程安全,而HashMap則非線程安全。Hashtable的實現方法裏面都添加了synchronized關鍵字來確保線程同步,因此相對而言HashMap性能會高一些。 我們平時使用時若無特殊

原创 JMM內存模型

(沒有寫完) 併發編程主要關心兩個問題: 1、線程間通信 2、線程間同步 線程間通信用共享內存和消息 Java使用的是共享內存進行通信 使用共享內存通訊就會有一個問題,可見性問題 可見性問題的是由重排序優化造成的 volati