A. php版本選擇問題.VC6和VC9的區別,TS和NTS如何選擇
TS是Thread Safety,代表線程安全,而NTS是None Thread Safe代表非線程安全。
Windows系統下才分線程安全與非線程安全,
windows + Apache + PHP(模塊) :使用線程安全版本。
windows + Apache + PHP(FastCGI) :使用非線程安全版本。
如果你的電腦是32位的, 那裝x86的版本,如果是64位的, 裝x64的版本!
一般來說不區分32位和64位,或者64位操作系統兼容32位的PHP,但是在某些操作系統上還是區分32位和64位的,例如windows 2008。
vc6和vc9是指vc運行庫的版本,你PHP版本標志的是VC9,那麼運行的時候,需要安裝vc9
VC9 -是安裝運行使用 Visual Studio 2008 生成的 C++ 應用程序所必需的運行時組件。
這篇教程文章里提供700多個PHP版本下載。(700個PHP版本一鍵切換)
網路搜索這個文章標題:
PHP集成環境如何自定義PHP版本,同時運行多個php版本一鍵開啟模塊。
搜到的文章中,在文章的附件里有提供PHP歷史版本下載,差不多700多個PHP版本,最老和最新版本都包含了。如果你找不到,就找原文吧,因為你搜到的文章可能是被其他網站轉載的。
建議使用PHPWAMP綠色集成環境,700個PHP版本隨意切換,多版本同時運行。
(網路搜PHPWAMP有詳細的使用教程,能同時運行多個PHP版本,一鍵去埠等)
B. 64位操作系統是什麼
現在,Windows XP 64 Professional x64 Edition(以下簡稱Windows XP 64)已經正式推出,和32位的Windows XP相比,它有哪些顯著的變化呢?它能順利支持32位應用嗎?普通用戶現在可以升級到Windows XP 64嗎?
跨入64位之路
「位」,簡單地理解就是CPU的定址空間。在計算機技術的發展史上,位的演變起到了舉足輕重的作用。從1971年的4位計算到如今已來臨的64位計算時代,經歷了漫長的演變過程。
1978--1995年:16位大行其道
1978年,Intel推出了首顆16位CPU--8086。在此期間,操作系統走過了16位的PC-DOS、MS-DOS、CP/M-86、UCSD Pascal P-System,MS-DOS開始成為個人計算機操作系統的霸主,直到今天,DOS在Windows系統維護中仍然扮演著重要的角色。值得我們懷念的是,那時國人的電腦上幾乎沒有不安裝WPS For DOS(早期的文字處理軟體,相當於現在的 Word)的,為計算機在我國辦公領域的應用打下了堅實的基礎,同時,國人也成功地開發出了中文DOS系統,如CCDOS等。
1985年,微軟推出了Windows 1.0,之後又陸續推出了Windows 2.0、Windows 286、Windows 386,但由於性能平平而沒有得到人們的注意。直到1990年5月,微軟推出了Windows 3.0,加入了許多有用的功能,並首次加入了多媒體功能,被輿論稱為「多媒體的DOS」。Windows 3.0一經面世,就取得驚人的成功,一舉奠定了微軟在操作系統上的壟斷地位。
1995年至今:從16位到32位的飛躍
1985年Intel推出了首顆32位處理器80386。在此期間,1995年8月,微軟推出了Windows 95,稱為操作系統發展史上一個里程碑。從Windows 95到Windows 98/ME,都是混合16/32位計算的操作系統,並不是純32位操作系統,穩定性和性能方面雖比過去得到了較大的提升,但仍不能滿足人們對計算機應用的需要。
2000年,微軟推出了Windows 2000,開辟了個人桌面32位計算與應用的新時代。2001年發布的Windows XP成為目前使用率最高的操作系統。
32位計算時代最成功的應用就是多媒體和Internet,32位的Windows平台上涌現了很多之前只能運行在SGI等大型圖形工作站的應用程序,如3DMax、Photoshop等,人們不再為這些多媒體創作而購買極其昂貴的圖形工作站,日益成熟的32位計算開辟了PC擔任多媒體應用工具的新紀元。
2005年:64位即將君臨天下
今天,64位計算平民化的時代即將來臨。和以前8位向16位躍進、16位向32位躍進耗費十幾年的情況不同, 64位CPU推出沒幾年,就出現了64位的Windows XP和64位的Windows Server 2003。微軟稱,64位的Longhorn也將於2006年發布。
除此之外,與個人桌面系統同步的還有伺服器系統,如Windows NT/Server 2000/Server 2003等,就在微軟發布64位Windows XP的同時,也發布了64位Windows Server 2003。至今,還可從微軟網站注冊並下載64位的有120天限制的Windows Server 2003。
為什麼需要升級到64位
如前所述,隨著多媒體功能的滲入和硬體價格的日趨平民化,越來越多的人加入到PC應用的行列,造就了一大批進行家庭多媒體創作等應用的非專業人士,很多人不再滿足於用電腦打字、作表格、上網聊天等簡單應用。隨著人們對電腦要求越來越高,32位系統已力不從心,於是64位CPU和64位操作系統先後出爐。在操作系統方面,經過充分的准備(包括前段時間微軟推出的免費下載試用),微軟終於在今年4月25日推出了具有重要意義的64位Windows XP和64位Windows Server 2003。
按微軟官方的說法,Windows XP Professional x64 Edition的設計初衷是滿足機械設計和分析、三維動畫、視頻編輯和創作以及科學計算和高性能計算應用程序等領域中需要大量內存和浮點性能的客戶的需求--這些應用都需要高性能和大內存的支持。
64位與32位Windows XP相比的一大特色就是能提供大內存的支持。當前,32位Windows能支持最多4GB的系統內存,每個處理器可最多使用2GB專用內存。而Windows XP Professional x64 Edition當前支持多達128GB內存,隨著硬體功能的增強和內存大小的增加,有可能支持多達16TB(1TB=1000GB)的虛擬內存。其它數據請見下表:
再從個人桌面系統用戶的角度來看,內存容量的限制只是體現64位計算技術優勢的一個方面,大量數據處理才是64位計算真正發揮功效的地方。PC已經不僅僅是用戶計算的工具,它更是「多媒體」中心,很多這方面應用是32位計算根本無法滿足的。如在家用領域,32位無法實現高保真的聲像,甚至無法完成20分鍾視頻的播放和編輯;在建築、游戲設計領域,32位計算無法完成大量的數據計算和處理;在互聯網上,32位計算無法實現大量的各種類型的數據搜索--這些應用都需要64位計算來實現。
64位Windows XP的安裝
要說明的是,64位Windows XP只能在64位平台上安裝,因為安裝程序在安裝之前會對系統進行檢測,如果檢測不到64位CPU,操作系統將中斷安裝過程
現行的64位Windows XP還只有英文版,加之對新系統的不熟悉和新系統的兼容問題,目前國內32位系統依然占據主流。可能很多讀者首先想到的是多系統,保留原32位Windows XP,用光碟啟動,將64位Windows XP安裝到另一分區或原系統分區的另一目錄下,不過這種做法存在嚴重的兼容性問題。兼顧以上種種理由,筆者推薦大家採用獨立多系統法。
步驟1:用DOS版的分區軟體在硬碟上劃分出兩個主分區,擴展分區任意。主分區可以有多個,但只能有一個處於活動狀態,另一主分區將自動處於隱藏狀態。為方便後面的敘述,現設兩主分區的卷標分別是Win32和Win64。
步驟2:用分區魔術師使Win32分區處於活動狀態,正常安裝32位Windows XP。安裝時一定要讓另一主分區處於隱藏狀態。
步驟3:用分區魔術師使Win64分區處於活動狀態,同時隱藏Win32分區,在Win64分區下安裝64位Windows XP,安裝方法與簡體中版的32位Windows XP沒什麼兩樣。
注意:在一個主分區下安裝系統時,一定要讓另一主分區處於隱藏狀態,獨立多系統成敗的關鍵全系於此。以上安裝法只是一種思路,也可通過調整原系統分區大小將其分割一塊出來,再將分割出來的部分建成主分區以安裝64位Windows XP。
步驟4:多系統的切
在任一系統下安裝完全版的分區魔術師8.0,在其安裝目錄下找到以下兩個文件:pqbw.exe和pqbw.rtc,再將其拷貝到任一擴展分區的一個新建目錄下
提示:在64位Windows XP下,分區魔術師的安裝目錄默認是「C:Program Files (x86)PowerQuestPartitionMagic 8.0」,在32位Windows XP下是「C:Program Files PowerQuestPartitionMagic 8.0」。如果不是完全版的,可能找不到以上兩文件。
雙擊pqbw.exe,顯然,兩個主分區都已被軟體識別出來了。從「Status:」下可看出,Win32分區處於活動(Active)狀態,該分區下的操作系統處於運行狀態,如果此時單擊選中另一分區即Win64,同時選中「Restart Now(馬上重啟)」,再單擊OK,當前系統會立即關閉並重新啟動到64位Windows XP下。由於這兩個文件已拷貝到擴展分區,所以無論啟動到哪一系統下都能找到並運行它。
由於只能有一個主分區處於活動狀態,另一分區默認地處於隱藏狀態,不管啟動到哪一系統下,都只能有一個主分區的盤符被分配為C盤,後面的擴展分區在磁碟管理器下顯示為D盤、E盤等,可共享擴展分區下的數據。如果為維護方便,手動將兩分區都設置為非隱藏狀態,也只能啟動到活動主分區上的操作系統,另一主分區的盤符將排到擴展分區之後。
IT.COM.CN
掀開64位的底牌
1992年2月,COMPAQ公司在業界首推名為Alpha的64位中央處理器,主頻創記錄地達到了200MHz。而SUN公司的UltraSparcIII、IBM公司的Power 5以及Apple公司的G5等面向64位計算的處理器也紛紛出台,Intel也早在2001年就與HP合作開發了基於IA-64架構的Itanium處理器。如同一種產品在市場上獲得普及而非由少數用戶擁有的時候,我們才能真正將其列歸主流一樣,只有當64位技術為個人用戶廣泛應用的時候,我們才能夠認為64位時代真正來臨。隨著AMD在全球搶先投放其面向個人用戶的64位處理器開始,Intel在一年之後也以自己的64位處理器回應,從而真正拉開了64位計算時代的大幕。
X86平台64位處理器大事記:
★2003年4月22日,AMD發布了基於AMD64技術的Opteron處理器。該處理器即是AMD一直以代號「大錘」進行研發的項目產物,可以同時兼容64位和32位應用。
★2004年2月的IDF 2004上Intel正式展示了其代號為Nocona的64位至強處理器,同年8月4日,面向個人電腦的64位處理器Pentium 4 F推出。
★2004年10月5日舉行的微處理器論壇,威盛電子公布了其代號為Isaiah的64位處理器,該處理器將於2006年上半年投產。
64位時代的5道門檻
隨著Intel全面發布了自己的64位中央處理器,我們已經可以感受到64位時代的呼吸了。但是現在就開始歡呼雀躍似乎為時尚早,系統平台的過渡通常並非坦途。遠的按下不表,單說16位向32位的過渡,也是在兼容16位應用的前提下經過了多年的發展才逐漸確立了32位應用的主流地位,並一直演化出32位一統天下二十年的大好江山。如今64位想重復32位的老路,顛覆32位的統治地位,無疑將面臨很多阻撓。我們就來看看在向64位時代邁進的道路上,需要跨過哪些門檻。
門檻1:硬體驅動問題
現在AMD和Intel已經開始在市場上大量投放64位處理器,而其他一些個人級處理器廠商也在積極動作。但是一台計算機並非只有一個處理器就能運行,它還需要大量周邊設施的輔助。由於目前進行過的所有測試都表明在64位操作系統中運行64位應用程序比運行32位應用程序要更加高效,所以用戶也應該盡可能在自己的操作系統中安裝64位的驅動程序。而且根據從微軟獲得的信息,32位的驅動程序是無法在64位Windows操作系統中使用的。
現在硬體產品多如繁星,不可能所有的產品都具備64位驅動程序供用戶使用。目前單就主板來說,市場上就有成百個品牌在供應產品,而能夠生產其他配件的廠商更是數不勝數。相對較大規模的廠商具有比較良好的技術研發能力,而一些依靠降低成本價格進行競爭的小廠商就很難保證附屬程序的研發了。在這種情況下,相對實力較弱的廠商通常會使用元件附帶的公版驅動,甚至根本不提供經過驗證的與產品匹配的驅動。所以在使用64位硬體平台的用戶,應該特別注意自己現在購買的硬體是否帶有針對64位平台的驅動程序。並且在可能的情況下,盡量選擇大廠的產品,以免無法充分發揮硬體設備的性能。
在新購設備這一方面問題還不是特別嚴重,對於我們之前購買的設備來說問題可就沒那麼輕鬆了。畢竟很多用戶只通過更換主板和處理器進行升級,而非購買整套配件進行升級或者購買整機。一般相對核心的部件對於這個問題受到的影響較輕,而外設型的設備所受波及就更加嚴重,例如列印機、掃描儀等。現在有大量的用戶仍在使用幾年前購買的列印機,甚至某些產品的型號已經投產了超過5年的時間,有成百萬的用戶。在這種情況下,硬體廠商的責任不僅僅在於為新產品搭配64位驅動程序,而且還要考慮為所有仍在使用的舊有機型開發64位驅動程序。
在很多情況下,我們只能更多的寄希望於所使用的64位操作系統包含了正在使用設備的驅動程序。不過相信會有相當多的用戶要為此煩惱。全球的硬體廠商都應該加快腳步,為他們的產品提供各種平台的64位驅動支持,這也是64位硬體大范圍普及的一個重要前提。目前已經有一些廠商走在了前面,例如羅技已經表示在今年6月份推出其產品的64位驅動程序,盡管其大部分設備不使用驅動也可以很好的在64位操作系統下使用。
門檻2:缺乏應用程序
除了硬體方面的問題之外,應用程序方面的情況也不是特別樂觀。雖然現在很多32位的應用程序都可以使用兼容模式運行在64位模式下,但是總體來說,64位應用程序仍處於嚴重缺乏的境地。我們就目前已經確認的信息,來概覽一下重要軟體的64位版本情況。
Office辦公套件
佔有市場統治地位的微軟Office套件正在籌劃64位版本,在32位版本的Office 12推出後將很快推出64位版本的Office 12。但是據目前的情況看來,Office 12的推出時間很可能會是2006年的年中或者年末。屆時微軟不但面臨著Office套件64位化的問題,還需要進一步將Office與其它的微軟系統整合以及推出更多新功能,因為Office 2003版本相對前面版本的Office改進太少已經為不少激進的用戶所詬病。
開放源代碼的Open Office套件雖然沒有明確推出64位的版本,但是在64位Linux操作系統上確實可以正常的運行該辦公套件。我們認為開源的套件對於64位的支持應該相對比較簡單,因為我們可以很容易的自己進行編譯和部署套件的工作。
伺服器軟體
Web伺服器方面,除了Windows伺服器系統自帶的IIS之外,另一個主要的Web伺服器軟體Apache也提供了自己的64位版本,但是目前還沒有看到Apache在Windows平台上有64位版本發布。就運行速度而言,64位的Apache在同等級別的硬體平台上相對於32位的Apache有一定的提升。而且我們相信64位技術會給Apache的性能帶來更大的收益,畢竟Web伺服器軟體對內存的要求是相當高的。
資料庫伺服器方面,微軟的SQL Server已經提供了64位支持。在2005年的5月,微軟發布了SQL Server的SP4補丁包,使用該補丁包用戶將能夠在64位平台上運行基於SQL Server的應用程序。支持64位X86硬體平台的64位商業資料庫還包括IBM的DB2和Oracle。而MySQL,這個最流行的開源資料庫系統,更是早在2004年初就已推出了基於HP-UX和Itanium 2處理器的64位版本,其對64位平台的支持還是相當全面的。相對來說,資料庫伺服器對64位技術的支持是相對較好的,畢竟資料庫應用需要海量的存儲空間。
工具軟體
目前工具軟體廠商還很少推出專門針對64位平台的版本,但是在微軟64位操作系統上,影音播放、圖片瀏覽、文件下載等常用的32位工具軟體都能夠較好的運行,而對於Linux等將應用程序打包發布的操作系統,各種工具軟體也能夠正常工作。
以上只是描述了很小一部分軟體的64位版本應用情況。綜合來看,大部分軟體廠商還沒有推出針對64位平台的產品版本,所以說目前可供用戶使用的純64位應用還非常稀缺。大家可以查詢所需使用軟體的官方網站,進一步了解64位版本的發布情況。
門檻3:兼容性問題
從32位到64位,如何能夠平穩的完成又一次計算平台的巨大變遷?回首歷史,X86架構經歷了8位到16位、16位到32位等數次變革。離我們最近的一次也是影響最深遠的一次就是從16位到32位的平台轉換。在這次影響久遠的過渡之中,我們的主流中央處理器由286演變為極具變革意義的386,PC開始成為信息時代舞台上的主角。
因為在當時16位應用居於統治地位,硬碰硬式的革命即使成功也會損失慘重。所以X86架構處理器的生產商極為明智的選擇了一條兼容16位處理器,逐步推廣32位處理器的發展路線。當兼容16位應用的32位處理器上市之後,用戶驚喜地發現這種處理器同樣能夠非常順利地運行16位應用程序,而且其運行速度大大超過當時的16位處理器。在這種情況下,購買新機的用戶當然對性能更好而且還能夠在未來運行32位應用的32位處理器情有獨鍾,並且帶動了大量准備升級計算機的用戶投向32位陣營。
正確的策略賦予了32位變革足夠的初始動能,當雪球越滾越大之後,終於使32位接替16位成為必然。在此期間,信息產業中的各個行業獲得了充分的時間使自己向32位技術進行過渡,這一方面保證了過渡的平穩,另一方面也為32位技術打下了扎實的根基。值得一提的是,在這個遷移過程的同時,還出現了一種被稱為RISC的架構。
平心而論,RISC架構從技術層面要比X86架構更加優秀。但是由於與占據了極大市場份額的X86架構不兼容,所以無法被大眾所接受,越來越被擠向高端市場,最終成了一種曲高和寡的技術。從這段歷史我們不難看出,在發生深層次技術平台遷移的時候,往往由於涉及面過廣,而無法迅速的完成轉變。只有很好的顧及舊有系統的價值,以自然的方式平穩地引發需求,才能獲得最大限度的成功。
歷史總是驚人相似,我們相信32位技術向64位技術的轉化也是如此。AMD也是選擇了在64位技術的基礎上兼容32位技術的戰略,從這一年多的市場反應來看可以充分說明AMD的睿智。微軟也順應時勢的在64位Windows XP中集成了WOW(Windows-32-on-Windows-64)子系統,用於提供32位應用與64位應用的兼容。現在剩下的問題就是,目前這些主力廠商所提供的兼容性,是否能夠滿足應用的要求呢?我們在個人用戶最常用的Windows平台下針對兼容性問題進行了一系列的實驗,大家可以根據實驗的結果得出自己的答案。
在我們的測試中,下列程序可以正常的在64位Windows系統中工作,沒有發現任何問題:
文檔處理 Microsoft Office 2000/2003、Adobe Acrobat 7.0、UltraEdit 11
圖像處理 Adobe Photoshop CS、Paintshop Pro 9、CorelDRAW 12;Firework MX 2004
三維製作 3D Studio Max 6、Maya 6.5
光碟處理 Ahead Nero 6、Ultra ISO 7、MagicISO
網頁製作 Dreamweaver MX 2004、Flash MX 2004
網頁瀏覽 Firefox 1.2、Opera 8
媒體播放 Media Player Classic、Power DVD 6、Quicktime 6.5
系統工具 Partition Magic 8、WinAce v2.6、JRE 1.5;VMWare 5
即時通訊 MSN Messenger 7.0、ICQ 5
文件下載 eMule 4.6a
游戲軟體 魔獸爭霸3;星際爭霸
第二個部分是能夠完成基本的工作但是存在一些問題的軟體。
WinRAR 3.5和Winzip 9.0都可以正常工作,但是問題在於右鍵菜單中的快捷選項無法正確載入。我們估計原因在於這些載入項只能工作在32位的Explorer環境中,估計其它利用該技術修改右鍵菜單的軟體也會受到影響。另外,一些老版本的Acrobat程序需要使用32位的驅動程序,所以不能使用列印PDF文檔的功能。另外我們還發現,在安裝Office 2003 SP1的時候會顯示一組錯誤消息,但是對使用不造成任何影響。
無法工作的應用軟體:
所有使用32位底層驅動的軟體無法順利的在64位操作系統中。大部分32位防病毒軟體都應用Windows底層驅動進行病毒監控,所以都無法正常工作。個人防火牆軟體也是如此,例如Zonealarm和Sygate的防火牆軟體就無法在64位系統下工作。而我們能夠找到的所有虛擬光碟機軟體都無法執行。
一個讓我們比較意外的情況是微軟的Virtual PC 2004虛擬機軟體也無法在64位Windows上運行,要知道他的主要競爭對手VMWare可是能夠運行的,可能是Virtual PC對Windows的底層進行了一些調用。還有很多微軟的套件無法在64位Windows下運行,希望微軟盡快推出64位版本吧。
門檻4:開發工具問題
64位應用軟體的缺乏,同樣需要開發工具廠商的投入。只有64位開發環境達到了足夠的成熟度,程序員才會有學習64位環境軟體開發的熱情。64位處理器的字長從32位提升到64位,使內存地址范圍大量擴充,內存的容量、處理速度和精度等指標隨之大幅提升。在32位系統下,一旦數據處理量及會話連接突破一定界限之後,就非常容易出現系統崩潰。所以在高端應用領域,一直是64位系統的天下。
Intel雖然在高端推出了安騰處理器,但是由於所能運行的應用軟體相對較少,一直沒有能夠有效地佔據市場。如今X86架構的處理器開始投放市場,所有立足於X86架構的廠商當然希望用戶可以繼續有豐富的軟體可用。想要在64位平台上開發軟體,首先要有完善的編譯器軟體。因為目前絕大多數主流的高級編程語言都是編譯式的,如果沒有高質量的編譯器,就很難開發出性能優異的軟體程序。
以C語言編譯器來說,除了可以從Intel這樣的處理器廠商處獲取之外,還可以使用GCC提供的開放源代碼的64位版本編譯器。
凡事總有例外,並不是所有的主流開發平台都是基於編譯技術的,例如java。Java也會將源代碼編譯為可在虛擬機中執行的位元組碼,但是由於Java並不針對處理器指令集編譯生成平台本地化的代碼,所以在嚴格意義上不應將其劃歸為編譯性語言。在使用虛擬機技術的編程平台中撰寫的源代碼,是不受平台限制的。以Java為例,在32位平台下生成的位元組碼是可以直接運行在64位平台上的,只要運行的環境中安裝了版本匹配的Java運行時環境(JRE)。
另外,Java開發平台為了實現在不同字長環境中運行Java程序,對數據類型也做了相應的處理,程序員並不會為這些問題花費太多的心思。談到開發我們無法忽略微軟的存在,畢竟全球大部分計算機都在運行微軟的操作系統。由於微軟現在主推的.NET計算平台使用了和Java類似的技術,所以嚴格來說從32為轉換到64位對.NET程序也沒有什麼影響。我們需要關注的只是微軟的操作系統是否足夠完善以及他們什麼時候才會發布完整的開發庫支持。
現在微軟已經發布了Visual Studio .NET 2005的Beta版本,據稱這款微軟最新的開發工具中提供了64位開發的更多支持。這兩個開發平台所具有的這種特性對程序員具有相當的吸引力,因為這意味著程序員可以使用同樣的知識基礎同時為不同的系統平台開發程序。而且這對企業移植應用程序帶來了巨大的便利,如果企業選擇的開發環境是Java或者.NET的話。這從側面說明了為什麼Java和.NET是企業級開發市場的主宰力量,選擇了投入這兩個陣營的企業現在一定會滿意自己的決策。
門檻5:實施成本問題
IT行業一個常用的衡量尺度是TCO,即總體擁有成本。這個衡量方式的主要原則在於我們在實施IT設施的時候不但要考慮顯性成本,同時也要重視隱性成本。以32位向64位遷移來說,隱性的成本包括了對原有設備的影響、用戶知識結構的變化、不同平台的整合以及程序移植等等。應該說目前X86架構的64位系統從一定程度上解決了這些問題。
AMD從最開始就選擇了兼容32位應用的策略推廣其64位處理器,而Intel在百般權衡之後,也尾隨AMD的腳步走上了同樣的道路。在這種情況下,32位和64位的平台過渡工作將省卻很多麻煩。但是盡管有這些有利條件,平台過渡仍是一個非常巨大的工程,會涉及到組織的方方面面。這就需要所有參與其中的人與過渡工作緊密配合,如果沒有積極的態度和嚴謹的心態,會帶給IT設施的運作造成無可估量的損失。
另外,我們在注重TCO的同時,也不能忽略系統的擴展能力。就是說,我們不但要注重短期的效益,還要估算長期的利益。只將目光集中於眼下的成本節省,代價很可能是在將來付出更大的成本。特別是在相對大型的計算環境中,一定要制訂好詳細的遷移計劃,評估各種應用的重要性等級和對64位系統平台的需求,開展足夠的培訓和教育工作,這樣才有可能成功的完成32位平台向64位平台的過渡。
64位硬體的安全軸心
64位技術的普及化,除了能夠帶給個人用戶性能方面更好的體驗之外,還提供了更多創新的空間。我們現在就來看看對於個人安全防護來說最重要的防病毒和防火牆功能,64位硬體平台給了我們怎樣的答案。
64位處理器的防毒功能
在傳統的防病毒領域,我們大多使用防病毒軟體處理計算機病毒問題。AMD推出的64位處理器都提供防病毒功能,而Intel不只在64位處理器中集成了這樣的功能,其很多32位處理器也可以提供防毒功能。兩者內置的防病毒技術都是使用被稱為NX bit的一種防止內存溢出的機制來實現的。
我們知道,目前的大部分惡意攻擊都是利用某種方式使目標機器執行攻擊者想要執行的代碼,而這通常是由內存緩沖區溢出的形式來完成的。以近年來大肆傳播的網路蠕蟲病毒來說,其主要的感染行為就要依賴這種技術。所以在理論上,如果我們能夠防止發生內存溢出,就能大大降低系統的安全威脅。NX bit就是針對這類問題所推出的解決方案。
拋開技術實現的細節不表,NX bit是通過怎樣的機制完成工作的呢?非法的內存溢出通常在數據中植入了可執行的代碼,這些惡意代碼在溢出時會被推入執行隊列。NX bit在映射內存的物理地址和邏輯地址的管理機制中添加NX位,當CPU提取指令的過程中,一個生效的NX位被執行的話操作系統將會收到報錯。利用這個機制操作系統可以將不應執行的內存區域標記為NX,這樣就可以阻止很多惡意程序的破壞行為。
目前AMD和Intel的CPU防毒技術都是針對Windows XP SP2所提供的DEP(Date Execution Prevention)進行設計的。在該操作系統中,我們可以針對單個程序設置其是否受到這種機制的保護。需要注意是,基於NX bit的防範措施只能避免部分惡意行為的侵擾,而不能解決所有的安全問題。
攻擊者仍然可能猜出可以執行代碼的位置,只是難度要有所增加而已,而沒有正確編寫的應用程序和系統軟體,仍舊會留下安全隱患。畢竟究其本質,NX bit只是在硬體層提供了一個保護機制而已。而任何安全設施沒有被正確使用的話,都不會獲得正確的結果。
主板集成的硬體防火牆
為了給單機用戶提供更強大的安全防護能力,也為了為系統減輕負擔,nVIDIA在推出其第一代64位主板控制晶元NF3 250Gb時,在其中集成了硬體防火牆功能。這項功能隨後又被加入到NF2 Ultra 400 Gb中,之後推出的NF4 Ultra也包含了這項功能。以NF4 Ultra為例,其防火牆管理軟體被集成於驅動程序之中。如果決定使用該防火牆,可先將當前機器上所安裝的防火牆軟體禁用。
啟用了主板集成的防火牆之
C. GitHub上面有哪些經典的java框架源碼
Bazel:來自Google的構建工具,可以快速、可靠地構建代碼。官網
Gradle:使用Groovy(非XML)進行增量構建,可以很好地與Maven依賴管理配合工作。官網
Buck:Facebook構建工具。官網
位元組碼操作
編程方式操作位元組碼的開發庫。
ASM:通用底層位元組碼操作和分析開發庫。官網
Byte Buddy:使用流式API進一步簡化位元組碼生成。官網
Byteman:在運行時通過DSL(規則)操作位元組碼進行測試和故障排除。官網
Javassist:一個簡化位元組碼編輯嘗試。官網
集群管理
在集群內動態管理應用程序的框架。
Apache Aurora:Apache Aurora是一個Mesos框架,用於長時間運行服務和定時任務(cron job)。官網
Singularity:Singularity是一個Mesos框架,方便部署和操作。它支持Web Service、後台運行、調度作業和一次性任務。官網
代碼分析
測量代碼指標和質量工具。
Checkstyle:代碼編寫規范和標准靜態分析工具。官網
Error Prone:將常見編程錯誤作為運行時錯誤報告。官網
FindBugs:通過位元組碼靜態分析查找隱藏bug。官網
jQAssistant:使用基於Neo4J查詢語言進行代碼靜態分析。官網
PMD:對源代碼分析查找不良的編程習慣。官網
SonarQube:通過插件集成其它分析組件,對過去一段時間內的數據進行統計。官網
編譯器生成工具
用來創建解析器、解釋器或編譯器的框架。
ANTLR:復雜的全功能自頂向下解析框架。官網
JavaCC:JavaCC是更加專門的輕量級工具,易於上手且支持語法超前預測。官網
外部配置工具
支持外部配置的開發庫。
config:針對JVM語言的配置庫。官網
owner:減少冗餘配置屬性。官網
約束滿足問題求解程序
幫助解決約束滿足問題的開發庫。
Choco:可直接使用的約束滿足問題求解程序,使用了約束規劃技術。官網
JaCoP:為FlatZinc語言提供了一個介面,可以執行MiniZinc模型。官網
OptaPlanner:企業規劃與資源調度優化求解程序。官網
Sat4J:邏輯代數與優化問題最先進的求解程序。官網
持續集成
Bamboo:Atlassian解決方案,可以很好地集成Atlassian的其他產品。可以選擇開源許可,也可以購買商業版。官網
CircleCI:提供託管服務,可以免費試用。官網
Codeship:提供託管服務,提供有限的免費模式。官網
fabric8:容器集成平台。官網
Go:ThoughtWork開源解決方案。官網
Jenkins:支持基於伺服器的部署服務。官網
TeamCity:JetBrain的持續集成解決方案,有免費版。官網
Travis:通常用作開源項目的託管服務。官網
Buildkite: 持續集成工具,用簡單的腳本就能設置pipeline,而且能快速構建,可以免費試用。官網
CSV解析
簡化CSV數據讀寫的框架與開發庫
uniVocity-parsers:速度最快功能最全的CSV開發庫之一,同時支持TSV與固定寬度記錄的讀寫。官網
資料庫
簡化資料庫交互的相關工具。
Apache Phoenix:HBase針對低延時應用程序的高性能關系資料庫層。官網
Crate:實現了數據同步、分片、縮放、復制的分布式數據存儲。除此之外還可以使用基於SQL的語法跨集群查詢。官網
Flyway:簡單的資料庫遷移工具。官網
H2:小型SQL資料庫,以可以作為內存資料庫使用著稱。官網
HikariCP:高性能JDBC連接工具。官網
JDBI:便捷的JDBC抽象。官網
Protobuf:Google數據交換格式。官網
SBE:簡單二進制編碼,是最快速的消息格式之一。官網
Wire:整潔輕量級協議緩存。官網
幫實現依賴翻轉範式的開發庫。官網
Apache DeltaSpike:CDI擴展框架。官網
Dagger2:編譯時注入框架,不需要使用反射。官網
Guice:可以匹敵Dagger的輕量級注入框架。官網
HK2:輕量級動態依賴注入框架。官網
開發流程增強工具
從最基本的層面增強開發流程。
ADT4J:針對代數數據類型的jsR-269代碼生成器。官網
AspectJ:面向切面編程(AOP)的無縫擴展。官網
Auto:源代碼生成器集合。官網
DCEVM:通過修改JVM在運行時支持對已載入的類進行無限次重定義。官網
HotswapAgent:支持無限次重定義運行時類與資源。官網
Immutables:類似Scala的條件類。官網
JHipster:基於Spring Boot與AngularJS應用程序的Yeoman源代碼生成器。官網
JRebel:無需重新部署,可以即時重新載入代碼與配置的商業軟體。官網
Lombok:減少冗餘的代碼生成器。官網
Spring Loaded:類重載代理。官網
vert.x:多語言事件驅動應用框架。官網
分布式應用
用來編寫分布式容錯應用的開發庫和框架。
Akka:用來編寫分布式容錯並發事件驅動應用程序的工具和運行時。官網
Apache Storm:實時計算系統。官網
Apache ZooKeeper:針對大型分布式系統的協調服務,支持分布式配置、同步和名稱注冊。官網
Hazelcast:高可擴展內存數據網格。官網
Hystrix:提供延遲和容錯。官網
JGroups:提供可靠的消息傳遞和集群創建的工具。官網
Orbit:支持虛擬角色(Actor),在傳統角色的基礎上增加了另外一層抽象。官網
Quasar:為JVM提供輕量級線程和角色。官網
分布式資料庫
對應用程序而言,在分布式系統中的資料庫看起來就像是只有一個數據源。
Apache Cassandra:列式資料庫,可用性高且沒有單點故障。官網
Apache HBase:針對大數據的Hadoop資料庫。官網
Druid:實時和歷史OLAP數據存儲,在聚集查詢和近似查詢方面表現不俗。官網
Infinispan:針對緩存的高並發鍵值對數據存儲。官網
發布
以本機格式發布應用程序的工具。
Bintray:發布二進制文件版本控制工具。可以於Maven或Gradle一起配合使用。提供開源免費版本和幾種商業收費版本。官網
Central Repository:最大的二進制組件倉庫,面向開源社區提供免費服務。Apache Maven默認使用Central官網Repository,也可以在所有其他構建工具中使用。
IzPack:為跨平台部署建立創作工具(Authoring Tool)。官網
JitPack:打包GitHub倉庫的便捷工具。可根據需要構建Maven、Gradle項目,發布可立即使用的組件。官網
Launch4j:將JAR包裝為輕量級本機Windows可執行程序。官網
Nexus:支持代理和緩存功能的二進制管理工具。官網
packr:將JAR、資源和JVM打包成Windows、Linux和Mac OS X本地發布文件。官網
文檔處理工具
處理Office文檔的開發庫。
Apache POI:支持OOXML規范(XLSX、DOCX、PPTX)以及OLE2規范(XLS、DOC、PPT)。官網
documents4j:使用第三方轉換器進行文檔格式轉換,轉成類似MS Word這樣的格式。官網
jOpenDocument:處理OpenDocument格式(由Sun公司提出基於XML的文檔格式)。官網
函數式編程
函數式編程支持庫。
Cyclops:支持一元(Monad)操作和流操作工具類、comprehension(List語法)、模式匹配、trampoline等特性。官網
Fugue:Guava的函數式編程擴展。官網
Functional Java:實現了多種基礎和高級編程抽象,用來輔助面向組合開發(composition-oriented development)。官網
Javaslang:一個函數式組件庫,提供持久化數據類型和函數式控制結構。官網
jOOλ:旨在填補Java 8 lambda差距的擴展,提供了眾多缺失的類型和一組豐富的順序流API。官網
游戲開發
游戲開發框架。
jMonkeyEngine:現代3D游戲開發引擎。官網
libGDX:全面的跨平台高級框架。官網
LWJGL:對OpenGL/CL/AL等技術進行抽象的健壯框架。官網
GUI
現代圖形化用戶界面開發庫。
JavaFX:Swing的後繼者。官網
Scene Builder:開發JavaFX應用的可視化布局工具。官網
高性能計算
涵蓋了從集合到特定開發庫的高性能計算相關工具。
Agrona:高性能應用中常見的數據結構和工具方法。官網
Disruptor:線程間消息傳遞開發庫。官網
fastutil:快速緊湊的特定類型集合(Collection)。官網
GS Collections:受Smalltalk啟發的集合框架。官網
HPPC:基礎類型集合。官網
Javolution:實時和嵌入式系統的開發庫。官網
JCTools:JDK中缺失的並發工具。官網
Koloboke:Hash set和hash map。官網
Trove:基礎類型集合。官網
High-scale-bli:Cliff Click 個人開發的高性能並發庫官網
IDE
簡化開發的集成開發環境。
Eclipse:老牌開源項目,支持多種插件和編程語言。官網
IntelliJ IDEA:支持眾多JVM語言,是安卓開發者好的選擇。商業版主要針對企業客戶。官網
NetBeans:為多種技術提供集成化支持,包括Java SE、Java EE、資料庫訪問、HTML5
Imgscalr:純Java 2D實現,簡單、高效、支持硬體加速的圖像縮放開發庫。官網
Picasso:安卓圖片下載和圖片緩存開發庫。官網
Thumbnailator:Thumbnailator是一個高質量Java縮略圖開發庫。官網
ZXing:支持多種格式的一維、二維條形碼圖片處理開發庫。官網
im4java: 基於ImageMagick或GraphicsMagick命令行的圖片處理開發庫,基本上ImageMagick能夠支持的圖片格式和處理方式都能夠處理。官網
Apache Batik:在Java應用中程序以SVG格式顯示、生成及處理圖像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模塊,可以集成使用也可以單獨使用,還可以擴展自定義的SVG標簽。官網
JSON
簡化JSON處理的開發庫。
Genson:強大且易於使用的Java到JSON轉換開發庫。官網
Gson:谷歌官方推出的JSON處理庫,支持在對象與JSON之間雙向序列化,性能良好且可以實時調用。官網
Jackson:與GSON類似,在頻繁使用時性能更佳。官網
LoganSquare:基於Jackson流式API,提供對JSON解析和序列化。比GSON與Jackson組合方式效果更好。官網
Fastjson:一個Java語言編寫的高性能功能完善的JSON庫。官網
Kyro:快速、高效、自動化的Java對象序列化和克隆庫。官網
JVM與JDK
目前的JVM和JDK實現。
JDK 9:JDK 9的早期訪問版本。官網
OpenJDK:JDK開源實現。官網
基於JVM的語言
除Java外,可以用來編寫JVM應用程序的編程語言。
Scala:融合了面向對象和函數式編程思想的靜態類型編程語言。官網
Groovy:類型可選(Optionally typed)的動態語言,支持靜態類型和靜態編譯。目前是一個Apache孵化器項目。官網
Clojure:可看做現代版Lisp的動態類型語言。官網
Ceylon:RedHat開發的面向對象靜態類型編程語言。官網
Kotlin:JetBrain針對JVM、安卓和瀏覽器提供的靜態類型編程語言。官網
Xtend:一種靜態編程語言,能夠將其代碼轉換為簡潔高效的Java代碼,並基於JVM運行。官網
日誌
記錄應用程序行為日誌的開發庫。
Apache Log4j 2:使用強大的插件和配置架構進行完全重寫。官網
kibana:分析及可視化日誌文件。官網
Logback:強健的日期開發庫,通過Groovy提供很多有趣的選項。官網
logstash:日誌文件管理工具。官網
Metrics:通過JMX或HTTP發布參數,並且支持存儲到資料庫。官網
SLF4J:日誌抽象層,需要與具體的實現配合使用。官網
機器學習
提供具體統計演算法的工具。其演算法可從數據中學習。
Apache Flink:快速、可靠的大規模數據處理引擎。官網
Apache Hadoop:在商用硬體集群上用來進行大規模數據存儲的開源軟體框架。官網
Apache Mahout:專注協同過濾、聚類和分類的可擴展演算法。官網
Apache Spark:開源數據分析集群計算框架。官網
DeepDive:從非結構化數據建立結構化信息並集成到已有資料庫的工具。官網
Deeplearning4j:分布式多線程深度學習開發庫。官網
H2O:用作大數據統計的分析引擎。官網
Weka:用作數據挖掘的演算法集合,包括從預處理到可視化的各個層次。官網
QuickML:高效機器學習庫。官網、GitHub
消息傳遞
在客戶端之間進行消息傳遞,確保協議獨立性的工具。
Aeron:高效可擴展的單播、多播消息傳遞工具。官網
Apache ActiveMQ:實現JMS的開源消息代理(broker),可將同步通訊轉為非同步通訊。官網
Apache Camel:通過企業級整合模式(Enterprise Integration Pattern EIP)將不同的消息傳輸API整合在一起。官網
Apache Kafka:高吞吐量分布式消息系統。官網
Hermes:快速、可靠的消息代理(Broker),基於Kafka構建。官網
JBoss HornetQ:清晰、准確、模塊化,可以方便嵌入的消息工具。官網
JeroMQ:ZeroMQ的純Java實現。官網
Smack:跨平台XMPP客戶端函數庫。官網
Openfire:是開源的、基於XMPP、採用Java編程語言開發的實時協作伺服器。 Openfire安裝和使用都非常簡單,並可利用Web界面進行管理。官網GitHub
Spark:是一個開源,跨平台IM客戶端。它的特性支持集組聊天,電話集成和強大安全性能。如果企業內部部署IM使用Openfire+Spark是最佳的組合。官網GitHub
Tigase: 是一個輕量級的可伸縮的 Jabber/XMPP 伺服器。無需其他第三方庫支持,可以處理非常高的復雜和大量的用戶數,可以根據需要進行水平擴展。官網
雜項
未分類其它資源。
Design Patterns:實現並解釋了最常見的設計模式。官網
Jimfs:內存文件系統。官網
Lanterna:類似curses的簡單console文本GUI函數庫。官網
LightAdmin:可插入式CRUD UI函數庫,可用來快速應用開發。官網
OpenRefine:用來處理混亂數據的工具,包括清理、轉換、使用Web Service進行擴展並將其關聯到資料庫。官網
RoboVM:Java編寫原生iOS應用。官網
Quartz:強大的任務調度庫.官網
應用監控工具
監控生產環境中應用程序的工具。
AppDynamics:性能監測商業工具。官網
JavaMelody:性能監測和分析工具。官網
Kamon:Kamon用來監測在JVM上運行的應用程序。官網
New Relic:性能監測商業工具。官網
SPM:支持對JVM應用程序進行分布式事務追蹤的性能監測商業工具。官網
Takipi:產品運行時錯誤監測及調試商業工具。官網
原生開發庫
用來進行特定平台開發的原生開發庫。
JNA:不使用JNI就可以使用原生開發庫。此外,還為常見系統函數提供了介面。官網
自然語言處理
用來專門處理文本的函數庫。
Apache OpenNLP:處理類似分詞等常見任務的工具。官網
CoreNLP:斯坦佛CoreNLP提供了一組基礎工具,可以處理類似標簽、實體名識別和情感分析這樣的任務。官網
LingPipe:一組可以處理各種任務的工具集,支持POS標簽、情感分析等。官網
Mallet:統計學自然語言處理、文檔分類、聚類、主題建模等。官網
網路
網路編程函數庫。
Async Http Client:非同步HTTP和WebSocket客戶端函數庫。官網
Grizzly:NIO框架,在Glassfish中作為網路層使用。官網
Netty:構建高性能網路應用程序開發框架。官網
OkHttp:一個Android和Java應用的HTTP+SPDY客戶端。官網
Undertow:基於NIO實現了阻塞和非阻塞API的Web伺服器,在WildFly中作為網路層使用。官網
ORM
處理對象持久化的API。
Ebean:支持快速數據訪問和編碼的ORM框架。官網
EclipseLink:支持許多持久化標准,JPA、JAXB、JCA和SDO。官網
Hibernate:廣泛使用、強健的持久化框架。Hibernate的技術社區非常活躍。官網
MyBatis:帶有存儲過程或者SQL語句的耦合對象(Couples object)。官網
OrmLite:輕量級開發包,免除了其它ORM產品中的復雜性和開銷。官網
Nutz:另一個SSH。官網,Github
JFinal:JAVA WEB + ORM框架。官網,Github
用來幫助創建PDF文件的資源。
Apache FOP:從XSL-FO創建PDF。官網
Apache PDFBox:用來創建和操作PDF的工具集。官網
DynamicReports:JasperReports的精簡版。官網
flyingsaucer:XML/XHTML和CSS 2.1渲染器。官網
iText:一個易於使用的PDF函數庫,用來編程創建PDF文件。注意,用於商業用途時需要許可證。官網
JasperReports:一個復雜的報表引擎。官網
性能分析
性能分析、性能剖析及基準測試工具。
jHiccup:提供平台中JVM暫停的日誌和記錄。官網
JMH:JVM基準測試工具。官網
JProfiler:商業分析器。官網
LatencyUtils:測量和報告延遲的工具。官網
VisualVM:對運行中的應用程序信息提供了可視化界面。官網
YourKit Java Profiler:商業分析器。官網
響應式開發庫
用來開發響應式應用程序的開發庫。
Reactive Streams:非同步流處理標准,支持非阻塞式反向壓力(backpressure)。官網
Reactor:構建響應式快速數據(fast-data)應用程序的開發庫。官網
RxJava:通過JVM可觀察序列(observable sequence)構建非同步和基於事件的程序。官網
REST框架
用來創建RESTful 服務的框架。
Dropwizard:偏向於自己使用的Web框架。用來構建Web應用程序,使用了Jetty、Jackson、Jersey和Metrics。官網
Feign:受Retrofit、JAXRS-2.0和WebSocket啟發的HTTP客戶端連接器(binder)。官網
Jersey:JAX-RS參考實現。官網
RESTEasy:經過JAX-RS規范完全認證的可移植實現。官網
RestExpress:一個Java類型安全的REST客戶端。官網
RestX:基於註解處理和編譯時源碼生成的框架。官網
Retrofit:類型安全的REST客戶端。官網
Spark:受到Sinatra啟發的Java REST框架。官網
Swagger:Swagger是一個規范且完整的框架,提供描述、生產、消費和可視化RESTful Web Service。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
科學計算與分析
用於科學計算和分析的函數庫。
DataMelt:用於科學計算、數據分析及數據可視化的開發環境。官網
JGraphT:支持數學圖論對象和演算法的圖形庫。官網
JScience:用來進行科學測量和單位的一組類。官網
搜索引擎
文檔索引引擎,用於搜索和分析。
Apache Solr:一個完全的企業搜索引擎。為高吞吐量通信進行了優化。官網
Elasticsearch:一個分布式、支持多租戶(multitenant)全文本搜索引擎。提供了RESTful Web介面和無schema的JSON文檔。官網
Apache Lucene:是一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。官網
安全
用於處理安全、認證、授權或會話管理的函數庫。
Apache Shiro:執行認證、授權、加密和會話管理。官網
Bouncy Castle,涵蓋了從基礎的幫助函數到PGP/SMIME操作。官網:多途加密開發庫。支持JCA提供者(JCA provider)
Cryptomator:在雲上進行客戶端跨平台透明加密。官網
Keycloak:為瀏覽器應用和RESTful Web Service集成SSO和IDM。目前還處於beta版本,但是看起來非常有前途。官網
PicketLink:PicketLink是一個針對Java應用進行安全和身份認證管理的大型項目(Umbrella Project)。官網
序列化
用來高效處理序列化的函數庫。
FlatBuffers:高效利用內存的序列化函數庫,無需解包和解析即可高效訪問序列化數據。官網
Kryo:快速、高效的對象圖形序列化框架。官網
FST:提供兼容JDK的高性能對象圖形序列化。官網
MessagePack:一種高效的二進制序列化格式。官網
應用伺服器
用來部署應用程序的伺服器。
Apache Tomcat:針對Servlet和JSP的應用伺服器,健壯性好且適用性強。官網
Apache TomEE:Tomcat加Java EE。官網
Jetty:輕量級、小巧的應用伺服器,通常會嵌入到項目中。官網
WebSphere Liberty:輕量級、模塊化應用伺服器,由IBM開發。官網
WildFly:之前被稱作JBoss,由Red Hat開發。支持很多Java EE功能。官網
模板引擎
在模板中替換表達式的工具。
Apache Velocity:提供HTML頁面模板、email模板和通用開源代碼生成器模板。官網
FreeMarker:通用模板引擎,不需要任何重量級或自己使用的依賴關系。官網
Handlebars.java:使用Java編寫的模板引擎,邏輯簡單,支持語義擴展(semantic Mustache)。官網
Thymeleaf:旨在替換JSP,支持XML文件的工具。官網
測試
測試內容從對象到介面,涵蓋性能測試和基準測試工具。
Apache JMeter:功能性測試和性能評測。官網
Arquillian:集成測試和功能行測試平台,集成Java EE容器。官網
AssertJ:支持流式斷言提高測試的可讀性。官網
Awaitility:用來同步非同步操作的DSL。官網
Cucumber:BDD測試框架。官網
Gatling:設計為易於使用、可維護的和高性能負載測試工具。官網
Hamcrest:可用來靈活創建意圖(intent)表達式的匹配器。官網
JMockit:用來模擬靜態、final方法等。官網
JUnit:通用測試框架。官網
Mockito:在自動化單元測試中創建測試對象,為TDD或BDD提供支持。官網
PowerMock: 支持模擬靜態方法、構造函數、final類和方法、私有方法以及移除靜態初始化器的模擬工具。官網
REST Assured:為REST/HTTP服務提供方便測試的Java DSL。官網
Selenide:為Selenium提供精準的周邊API,用來編寫穩定且可讀的UI測試。官網
Selenium:為Web應用程序提供可移植軟體測試框架。官網
Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官網兼容JUnit框架,支持衍生的Groovy范的語言。
TestNG:測試框架。官網
Truth:Google的斷言和命題(proposition)框架。官網
Unitils:模塊化測試函數庫,支持單元測試和集成測試。官網
WireMock:Web Service測試樁(Stub)和模擬函數。官網
通用工具庫
通用工具類函數庫。
Apache Commons:提供各種用途的函數,比如配置、驗證、集合、文件上傳或XML處理等。官網
args4j:命令行參數解析器。官網
CRaSH:為運行進行提供CLI。官網
Gephi:可視化跨平台網路圖形化操作程序。官網
Guava:集合、緩存、支持基本類型、並發函數庫、通用註解、字元串處理、I/O等。官網
JADE:構建、調試多租戶系統的框架和環境。官網
javatuples:正如名字表示的那樣,提供tuple支持。盡管目前tuple的概念還有留有爭議。官網
JCommander:命令行參數解析器。官網
Protégé:提供存在論(ontology)編輯器以及構建知識系統的框架。官網
網路爬蟲
用於分析網站內容的函數庫。
Apache Nutch:可用於生產環境的高度可擴展、可伸縮的網路爬蟲。官網
Crawler4j:簡單的輕量級網路爬蟲。官網
JSoup:刮取、解析、操作和清理HTML。官網
Web框架
用於處理Web應用程序不同層次間通訊的框架。
Apache Tapestry:基於組件的框架,使用Java創建動態、強健的、高度可擴展的Web應用程序。官網
Apache Wicket:基於組件的Web應用框架,與Tapestry類似帶有狀態顯示GUI。官網
Google Web Toolkit:一組Web開發工具集,包含在客戶端將Java代碼轉為JavaScript的編譯器、XML解析器、RCP官網API、JUnit集成、國際化支持和GUI控制項。
Grails:Groovy框架,旨在提供一個高效開發環境,使用約定而非配置、沒有XML並支持混入(mixin)。官網
Ninja:Java全棧Web開發框架。非常穩固、快速和高效。官網
Pippo:小型、高度模塊化的類Sinatra框架。官網
Play:使用約定而非配置,支持代碼熱載入並在瀏覽器中顯示錯誤。官網
PrimeFaces:JSF框架,提供免費和帶支持的商業版本。包括若干前端組件。官網
Ratpack:一組Java開發函數庫,用於構建快速、高效、可擴展且測試完備的HTTP應用程序。官網
Spring Boot:微框架,簡化了Spring新程序的開發過程。官網
Spring:旨在簡化Java EE的開發過程,提供依賴注入相關組件並支持面向切面編程。官網
Vaadin:基於GWT構建的事件驅動框架。使用服務端架構,客戶端使用Ajax。官網
Blade:國人開發的一個輕量級的MVC框架. 它擁有簡潔的代碼,優雅的設計。官網
業務流程管理套件
流程驅動的軟體系統構建。
jBPM:非常靈活的業務流程管理框架,致力於構建開發與業務分析人員之間的橋梁。官網
Activity:輕量級工作流和業務流程管理框架。官網github
資源
社區