原创 JVM內部機制詳解

1. 什麼是JVM? JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用於計算設備的規範,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機包括一套字節碼指

原创 Iterator設計模式 給jdk寫註釋系列之jdk1.6容器(3)

前面講了兩種List,一種基於數組實現的ArrayList,一種基於鏈表實現的LinkedList,這兩種list是我們工作中最常用到的List容器

原创 LinkedList源碼解析 給jdk寫註釋系列之jdk1.6容器(2)

原文出處: 吞噬天帝 本系列: 給jdk寫註釋系列之jdk1.6容器(1)-ArrayList源碼解析   LinkedList是基於鏈表結構的一種List,在分析LinkedList源碼前有必要對鏈表結構進行說明。 1.鏈表的概念  

原创 Java爲什麼使用System.arraycopy來操作數組

在閱讀ArrayList源碼的過程中發現了底層在實現添加和刪除元素的時候,都使用了System.arraycopy方法。 在閱讀過System.arraycopy源碼後,發現了C中的經典複製語句。  while(from < end)

原创 TreeMap源碼解析 給jdk寫註釋系列之jdk1.6容器(7)

TreeMap是基於紅黑樹結構實現的一種Map,要分析TreeMap的實現首先就要對紅黑樹有所瞭解。      要了解什麼是紅黑樹,就要了解它的存在

原创 HashMap源碼解析 給jdk寫註釋系列之jdk1.6容器(4)

  前面瞭解了jdk容器中的兩種List,回憶一下怎麼從list中取值(也就是做查詢),是通過index索引位置對不對,由於存入list的元素時安裝插入順序存儲的,所以index索引也就是插入的次序。   Map呢是這樣一種容器,它可以存

原创 KPM算法源碼

今天突然被問起字符串匹配的算法,竟啞口無言,只剩下一些模糊的印象,回來惡補了一番。 樸素的匹配算法很簡單,往前找如果有部分成功的也回退,如果目標字符串長度爲m,源字符串長度爲n則時間複雜度爲O(m*n); 而克努斯等人發現了更快的不用回退

原创 二叉樹的前中後序的非遞歸遍歷算法。

今天把二叉樹的非遞歸遍歷算法複習了下,在這總結下。 三個算法都使用了棧,中序和前序遍歷算法大致相同,而後序遍歷稍微複雜一點。 先寫中序遍歷。 //S是 棧,存儲結點,t是樹的根結點 Inorder(t) //創建棧,將跟結點賦給臨時結點

原创 Iterator的幾個方法及意義

迭代器是一個對象,它的工作時遍歷並選擇序列中的對象。迭代器通常被稱爲輕量級對象,因爲創建它的代價小,Java的Iterator只能用來單向移動。 4個方法: 1.使用iterator()來返回一個Iterator。 2.使用next()獲

原创 ArrayList源碼解析 給jdk寫註釋系列之jdk1.6容器(1)

原文出處: 吞噬天帝 工作中經常聽到別人講“容器”,各種各樣的容器,話說到底什麼是容器,通俗的講“容器就是用來裝東西的器皿,比如:水桶就是用來盛水的,水桶就是一個容器。” ok,在我們寫程序的時候常常要對大量的對象進行管理,比如查詢,

原创 多態繼承的運行時綁定

今天在博客上看見一道多態的執行順序題,如下public class Dervied extends Base { private Stri

原创 LinkedHashMap源碼解析 給jdk寫註釋系列之jdk1.6容器(5)

前面分析了HashMap的實現,我們知道其底層數據存儲是一個hash表(數組+單向鏈表)。接下來我們看一下另一個LinkedHashMap,它是Ha

原创 HashSet源碼解析&Map迭代器 給jdk寫註釋系列之jdk1.6容器(6)

今天的主角是HashSet,Set是什麼東東,當然也是一種java容器了。     那麼今天的HashSet它又是怎麼一回事的,他的存在又是爲了解決什麼問題呢?      先來看下Set的特點:Set元素無順序,且元素不可以重複。 。想到

原创 網站開發基礎知識篇二 JavaScript知識點

"應該說它是一門非常簡單的語言,又是一門非常複雜的語言,說它簡單,是因爲學會它只需片刻功夫;而說他複雜,是因爲要真正掌握它需要數年時間"。(引自《JavaScript高級程序設計》)。因爲此前已經掌握了不少高級語言,這篇主要記錄Js的特點

原创 多態時子類父類構造器,成員變量及方法的調用順序。

父類的靜態代碼塊 子類的靜態代碼塊 父類的構造函數(這個時候成員變量值爲java默認初始值) (在父類構造函數完成之後)給所有成員變量賦值 子類的構造函數 然後執行自定義的方法。 並不執行靜態方法。 一些零碎的知識點:  1.Java中