原创 各種排序算法python和java實現(二)

第一篇博客實現了三種最基本最簡單的排序算法,本篇文章將在這三種算法的基礎上稍微演變一下。 1.快排 光從名字看就知道速度肯定不差,前一篇講的冒泡排序,怎麼看都不算是一種好的排序算法,裏面充斥了太多的無謂的交換動作,時間複雜度倒是很穩定o(

原创 jvm的happens-before原則

提到併發,通常首先想到是鎖,其實對共享資源的互斥操作是一方面,在java中還有一方面是內存的可見性和順序化,瞭解JMM的同學可能會更清楚些,內存可見性和順序性同樣非常重要,在這裏簡單提一下JMM模型,首先介紹一下SMP(對稱多處理結構)如

原创 關於類的初始化

網上看到一個非常有意思的java面試題,感覺裏面有不少可以講的東西,拿來與大家分享一下: 題目很簡潔就是給出下面這段程序的輸出內容: public class DispatchTest { public static void mai

原创 一個關於awk命令和sort命令的小例子

假設現在有如下一個txt的文本記錄: a|b|c|150203161843.289||| 1|2|c|150203161843.300||| a|m|c|150203161943.289||| |b|c|150203162843.289|

原创 從一道題目看類加載

有一道非常經典的題目,如果對虛擬機加載類的過程不熟悉,很容易就答錯,題目如下: public class Singleton { public static Singleton instance = new Singleton();

原创 tomcat系列之類加載器

jvm中有三種類加載器,好吧,爲了介紹tomcat中的類加載器,先來普及下類加載器的概念,參見這篇文章——JVM類加載器 。 就像JVM的類加載器一樣,爲了安全tomcat中自己擴展了幾種類加載器,分別來加載不同路徑下的lib庫,因爲

原创 JVM中方法調用的實現

我們寫代碼時方法調用是最常見的場景,但是這種最常見的場景在JVM中是如何實現的呢,下面就一起來探索一番。 注:博客內容參考了周志明的《深入理解java虛擬機》,如果大家想了解的更詳細推薦這本書,另外還有一本比較久遠的《深入java虛擬機第

原创 各種排序算法python和java實現(一)

先從最簡單的實現冒泡排序: # -*- coding: UTF-8 -*- intarray=[3,4,5,1,2,0,6,9,7] def bubble(array): for i in range(1,len(array))

原创 tomcat系列之整體結構

本系列文章是基於tomcat6.0的源碼。首先分析一下tomcat的啓動腳本,windows下的bat if "%OS%" == "Windows_NT" setlocal rem ----------------------------

原创 jdk集合源碼之LinkedList

LinkedList不同於ArrayList,它底層使用的是雙向循環鏈表實現的。繼承自AbstractSequentialList<E>不支持隨機訪問,同時一個LinkedList也是一個雙端隊列,支持從兩端的增刪,雙端隊列在某些多線程

原创 持續集成(Continuous Integration)

持續集成   作者:Martin Fowler     譯者:滕雲 原文發佈時間:2006年5月1日     翻譯時間:2012年2月25日 原文鏈接:http://www.martinfowler.com/articles/c

原创 jdk集合源碼之ArrayList

經常使用jdk提供給我們的集合,比如ArrayList,LinkedList,HashMap等等,還學習過他們之間的不同和相同點,比如ArrayList查詢快,新增刪除慢,LinkedList則相反,沒有看過底層的源碼,是沒辦法理解這些

原创 jdk集合源碼之HashMap

分析完數組和鏈表,再來分析下HashMap的源碼,基於K-V方式的存儲結構,簡單想象一下,典型的實現是基於數組+鏈表,正好我們前面分析完了數組和鏈表。廢話不多說,直接上源碼。 還是先從構造函數看起: public HashMap(

原创 python小練習

python版本使用的是2.7 工作中正好將正在學習的python用上,如果使用java寫的話太麻煩,代碼行數遠比python要多。 第一個例子是根據id的列表生成insert語句插入到某個簡單的表,因爲需要做聯合查詢,所以新建一張一個字

原创 由一道題目引出的java多態

某次逛論壇時發現一個非常有意思的題目,如下: class A<B> { public String show(A obj) { return ("A and