優點:
后臺實現一個hash table 加速get和contains方法。后臺使用數組保存
缺點:
默認大小為16, 如果超過則需要重新申請內存空間,大小為原來的兩倍,并把原來的數據內容復制到
新的內存空間中。
線程不安全(需通過Collections.synchronizedList方法設置)
加入的元素順序會因其內部的hash排序而改變
注:通常缺省的load factor 0.75較好地實現了時間和空間的均衡。增大load factor可以節省空間但相應的查找時間將增大,這會影響像get和put這樣的操作。
優點:
后臺實現一個hash table 加速get和contains方法。后臺使用鏈表保存
缺點:
默認大小為16, 如果超過則需要重新申請內存空間,大小為原來的兩倍,并把原來的數據內容復制到
新的內存空間中。
線程不安全(需通過Collections.synchronizedList方法設置)
加入的元素順序會因其內部的hash排序而改變
注:通常缺省的load factor 0.75較好地實現了時間和空間的均衡。增大load factor可以節省空間但相應的查找時間將增大,這會影響像get和put這樣的操作。
優點:
通過一個HashMap來實現數據的保存,內部實現紅黑樹數據結構,使所有元素按升序保存。
提供高效的get和contains方法,保存操作的效率為log(n)
缺點:
默認大小為16, 如果超過則需要重新申請內存空間,大小為原來的兩倍,并把原來的數據內容復制到
新的內存空間中(來自HashMap)。
線程不安全(需通過Collections.synchronizedList方法設置)
加入的元素升級排序而改變
注:treeset對元素有要求,必須實現Comparable接口或是Comparator 接口)
注:通常缺省的load factor 0.75較好地實現了時間和空間的均衡。增大load factor可以節省空間但相應的查找時間將增大,這會影響像get和put這樣的操作。
優點:
使用數組,提供快速的get,add和iterate方法,占用比較小的內存空間
缺點:
線程不安全(需通過Collections.synchronizedList方法設置)
insert和remove操作,非常慢(需要移動數組元素來實現)
當size超過時,需要新建一個較大的數據(默認大小是10,增量是 (size * 3)/2 + 1,
且把原來的數據都復制到新的上面)
優點:
使用鏈表結構,提供快速的add, insert, remove方法,占用比較小的內存空間
缺點:
線程不安全(需通過Collections.synchronizedList方法設置)
get操作,非常慢(需要從head一級級遍歷查找)
優點:
基于二叉數 提供比較快速的get, add,insert,iterate,remove方法。其中get,add和iterate方法比ArrayList稍慢一點。
缺點:
相對于ArrayList和LinkedList占比較多的內存空間
線程不安全(需通過Collections.synchronizedList方法設置)
優點:
基于二叉數 提供比較快速的get, add,iterate方法。默認大小的16.
它是線程安全
缺點:
如果大小超過設定的大小時,效率會非常低。它會重新申請內存空間(原來空間的兩倍),同時把原來的值復制到新內存空間上。
包的命名
Java包的名字都是由小寫單詞組成。但是由于Java面向對象編程的特性,每一名Java程序員都可以編寫屬于自己的Java包,為了保障每個
Java包命名的唯一性,在最新的Java編程規范中,要求程序員在自己定義的包的名稱之前加上唯一的前綴。由于互聯網上的域名稱是不會重復的,所以程序員一般采用自己在互聯網上的域名稱作為自己程序包的唯一前綴。
例如:
net.frontfree.javagroup
類的命名
類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單詞組成,則每個單詞的首字母均應為大寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由于類是設計用來代表對象的,所以在命名類時應盡量選擇名詞。
例如:
Circle
方法的命名
方法的名字的第一個單詞應以小寫字母作為開頭,后面的單詞則用大寫字母開頭。
例如:
sendMessge
常量的命名
常量的名字應該都使用大寫字母,并且指出該常量完整含義。如果一個常量名稱由多個單詞組成,則應該用下劃線來分割這些單詞。
例如:
MAX_VALUE
參數的命名
參數的命名規范和方法的命名規范相同,而且為了避免閱讀程序時造成迷惑,請在盡量保證參數名稱為一個單詞的情況下使參數的命名盡可能明確。
Javadoc注釋
Java除了可以采用我們常見的注釋方式之外,Java語言規范還定義了一種特殊的注釋,也就是我們所說的Javadoc注釋,它是用來記錄我們代碼中的API的。Javadoc注釋是一種多行注釋,以/**開頭,而以*/結束,注釋可以包含一些HTML標記符和專門的關鍵詞。使用Javadoc
注釋的好處是編寫的注釋可以被自動轉為在線文檔,省去了單獨編寫程序文檔的麻煩。
例如:
/**
*
This is an example of
* Javadoc
*
*
@author darchon
* @version 0.1,
10/11/2002
*/
在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權信息,之后在主程序中可以為每個類、接口、方法、字段添加
Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、接口、方法、字段所完成的功能,這句話應單獨占據一行以突出其概括作用,在這句話后面可以跟隨更加詳細的描述段落。在描述性段落之后還可以跟隨一些以Javadoc注釋標簽開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成文檔中以特定方式顯示。
變量和常量命名
變量命名的方法采用匈牙利命名法,基本結構為scope_typeVariableName,它使用3字符前綴來表示數據類型,3個字符的前綴必須小寫,前綴后面是由表意性強的一個單詞或多個單詞組成的名字,而且每個單詞的首寫字母大寫,其它字母小寫,這樣保證了對變量名能夠進行正確的斷句。例如,定義一個整形變量,用來記錄文檔數量:intDocCount,其中int表明數據類型,后面為表意的英文名,每個單詞首字母大寫。這樣,在一個變量名就可以反映出變量類型和變量所存儲的值的意義兩方面內容,這使得代碼語句可讀性強、更加容易理解。byte、int、char、long、float、
double、boolean和short。
變量類型和首字母對照關系如下表:
數據類型/對象類型 / 變量前綴 /
備注
byte bye
char chr
float flt
boolean bln
做布爾變量時,使用bln
Integer/int int
String str
Single
sng
short sht
Long/long lng
Double/double dbl
Currency
cur
Variant bln astr obj vnt
做布爾變量用時,用bln,做字符串數組用時,用astr,做為對象使用時,用obj,不確定時,用vnt。
對于數組,在數據類型的前綴前再增加一個a,例如字符串數組為astr。對于在多個函數內都要使用的全局變量,在前面再增加“g_”。例如一個全局的字符串變量:g_strUserInfo。
在變量命名時要注意以下幾點:
· 選擇有意義的名字,注意每個單詞首字母要大寫。
·
在一段函數中不使用同一個變量表示前后意義不同的兩個數值。
· i、j、k等只作為小型循環的循環索引變量。
·
避免用Flag來命名狀態變量。
·
用Is來命名邏輯變量,如:blnFileIsFound。通過這種給布爾變量肯定形式的命名方式,使得其它開發人員能夠更為清楚的理解布爾變量所代表的意義。
·
如果需要的話,在變量最后附加計算限定詞,如:curSalesSum。
· 命名不相包含,curSales和curSalesSum。
· Static Final 變量的名字應該都大寫,并且指出完整含義。
·
如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性。例如,如果在代碼的某些區域中使用intCnt,而在另一些區域中又使用intCount,就會給代碼增加不必要的復雜性。建議變量名中盡量不要出現縮寫。
·
通過在結尾處放置一個量詞,就可創建更加統一的變量,它們更容易理解,也更容易搜索。例如,請使用
strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常用的量詞后綴有:First(一組變量中的第一個)、Last(一組變量中的最后一個)、Next(一組變量中的下一個變量)、Prev(一組變量中的上一個)、Cur(一組變量中的當前變量)。
·
為每個變量選擇最佳的數據類型,這樣即能減少對內存的需求量,加快代碼的執行速度,又會降低出錯的可能性。用于變量的數據類型可能會影響該變量進行計算所產生的結果。在這種情況下,編譯器不會產生運行期錯誤,它只是迫使該值符合數據類型的要求。這類問題極難查找。
·
盡量縮小變量的作用域。如果變量的作用域大于它應有的范圍,變量可繼續存在,并且在不再需要該變量后的很長時間內仍然占用資源。它們的主要問題是,任何類中的任何方法都能對它們進行修改,并且很難跟蹤究竟是何處進行修改的。占用資源是作用域涉及的一個重要問題。對變量來說,盡量縮小作用域將會對應用程序的可靠性產生巨大的影響。
關于常量的命名方法,在JAVA代碼中,無論什么時候,均提倡應用常量取代數字、固定字符串。也就是說,程序中除0,1以外,盡量不應該出現其他數字。常量可以集中在程序開始部分定義或者更寬的作用域內,名字應該都使用大寫字母,并且指出該常量完整含義。如果一個常量名稱由多個單詞組成,則應該用下劃線“_”來分割這些單詞如:NUM_DAYS_IN_WEEK、MAX_VALUE。
原文地址:http://hi.baidu.com/94463874/blog/item/04c161a7fd306997d143588e.html
JDK(Java Development Kit,Java開發包,Java開發工具)是一個寫Java的applet和應用程序的程序開發環境。它由一個處于操作系統層之上的運行環境還有開發者編譯,調試和運行用Java語言寫的applet和應用程序所需的工具組成。
JDK是一切java應用程序的基礎,所有的java應用程序是構建在這個之上的。它是一組API,也可以說是一些java Class。
要成為一個Java程序員,JDK是必不可少的最基本的工具。
JDK(Java Development Kit)是Sun Microsystems針對Java開發員的產品。自從Java推出以來,JDK已經成為使用最廣泛的Java SDK(Software development kit)。
JDK包含的基本組件包括:
·javac – 編譯器,將源程序轉成字節碼
·jar – 打包工具,將相關的類文件打包成一個文件
·javadoc – 文檔生成器,從源碼注釋中提取文檔
·jdb – debugger,查錯工具
JDK中還包括完整的JRE(Java Runtime Environment,Java運行環境),也被稱為private runtime。包括了用于產品環境的各種庫類,以及給開發員使用的補充庫,如國際化的庫、IDL庫。
JDK中還包括各種例子程序,用以展示Java API中的各部分。
從初學者角度來看,采用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,有利于理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java應用開發非常困難,不能進行復雜的Java 軟件開發,也不利于團體協同開發。
JDK一般有三種版本:
l SE(J2SE),standard edition,標準版,是我們通常用的一個版本
l EE(J2EE),enterpsise edtion,企業版,使用這種JDK開發J2EE應用程序,
l ME(J2ME),micro edtion,主要用于移動設備、嵌入式設備上的java應用程序
Java開發工具(JDK)是許多Java專家最初使用的開發環境。盡管許多編程人員已經使用第三方的開發工具,但JDK仍被當作Java開發的重要工具。
JDK由一個標準類庫和一組建立,測試及建立文檔的Java實用程序組成。其核心Java API是一些預定義的類庫,開發人員需要用這些類來訪問Java語言的功能。Java API包括一些重要的語言結構以及基本圖形,網絡和文件I/O。一般來說,Java API的非I/O部分對于運行Java的所有平臺是相同的,而I/O部分則僅在通用Java環境中實現。
作為JDK實用程序,工具庫中有七種主要程序。
l Javac:Java編譯器,將Java源代碼轉換成字節碼。
l Java:Java解釋器,直接從類文件執行Java應用程序字節代碼。
l appletviewer:小程序瀏覽器,一種執行HTML文件上的Java小程序的Java瀏覽器。
l Javadoc:根據Java源碼及說明語句生成HTML文檔。
l Jdb:Java調試器,可以逐行執行程序,設置斷點和檢查變量。
l Javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件。
l Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數據,同時顯示字節代碼含義。
Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。
Tomcat 是一個小型的輕量級應用服務器
Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器
MySQL是一個小型關系型數據庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。
MySQL的海豚標志的名字叫“sakila”,它是由MySQL AB的創始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發者Ambrose Twebaze提供。根據Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉烏干達附近的坦桑尼亞的 Arusha的一個小鎮的名字
詳情請見“文章003:MySQL簡介”
下載地址:
1)官方主頁:http://java.sun.com
2)官方下載地址:http://java.sun.com/javase/downloads/index.jsp
3)版本控制列表:http://java.sun.com/products/archive/
4)JDK v1.5.0.15下載地址:jdk-1_5_0_15-windows-i586-p.exe
5)JDK v1.6.0下載地址:jdk-6-windows-i586.exe
6)JDK v1.6update6下載地址:jdk-6u6-windows-i586-p.exe
下載說明:建議下載離線版本,不要下載在線安裝版本。
下載地址:
官方主頁:http://tomcat.apache.org/
Tomcat-6版本的FTP下載路徑:http://archive.apache.org/dist/tomcat/tomcat-6/
V6.0.14完整下載地址:
http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.zip
tcnative-1.dll下載FTP地址:http://tomcat.heanet.ie/native/
tcnative 1.1.12版本下載:http://tomcat.heanet.ie/native/1.1.12/binaries/win32/tcnative-1.dll
下載說明:建議下載免安裝版本 tcnative-1.dll的用途請參照“文章008:關于tcnative-1.dll的說明”
下載地址:
1)、官方主頁:http://www.mysql.com
2)、官方下載頁面:http://dev.mysql.com/downloads/mysql/5.0.html#downloads;
下載說明:最新版本可能已經不是v5.0.22,下載v5.0.x版本的文件就可以了。下載文件的文件名稱應為:mysql-5.0.xx-win32.zip
,但是最好能是5.0.22版本
下載地址:
1)、官方主頁:http://www.webyog.com
2)、下載主頁:http://www.webyog.com/en/downloads.php
3)、v6.56版本下載:http://www.webyog.com/downloads/SQLyog656.exe
下載說明:現在的時候需要輸入郵箱才能下載,但不是注冊。
下載地址:
官方下載主頁:http://www.eclipse.org/downloads/
版本列表:
(a)、archived downloads: http://archive.eclipse.org/eclipse/downloads/
(b)、Other downloads:http://ganymede-mirror2.eclipse.org/eclipse/downloads/
V3.3.0版本下載地址:
http://archive.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/eclipse-SDK-3.3-win32.zip
下載說明:可以下載下載首頁的Eclipse IDE for Java EE Developers 這個版本,也可以到版本列表中查找相應的版本。
下載地址:
1)、官方主頁:http://subversion.tigris.org/
2)、下載主頁:
http://subversion.tigris.org/servlets/ProjectDocumentList?collapseFolder=91&folderID=91
3)、
下載說明:
下載地址:
1)、官方主頁:http://tortoisesvn.tigris.org/
2)、獨立主頁:http://tortoisesvn.net/
3)、下載主頁:http://tortoisesvn.net/downloads
4)、SourceForge列表: http://sourceforge.net/project/showfiles.php?group_id=138498
5)、v1.4.8版本:
http://nchc.dl.sourceforge.net/sourceforge/tortoisesvn/TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi
5)、v1.5.0版本:
http://jaist.dl.sourceforge.net/sourceforge/tortoisesvn/TortoiseSVN-1.5.0.13316-win32-svn-1.5.0.msi
下載說明:v1.5.0版本剛剛發布,我也沒有研究有什么好處,不過客戶端好像沒有什么要求,就是一個輔助性的工作,用1.4.5版本也可以,默認是1.4.8版本。
下載地址:
1)、官方主頁:http://subclipse.tigris.org/
2)、下載主頁: http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
3)、v1.0.4版本:http://subclipse.tigris.org/files/documents/906/35678/site-1.0.4.zip
4)、v1.0.6版本:http://subclipse.tigris.org/files/documents/906/39525/site-1.0.6.zip
5)、v1.4.0版本:http://subclipse.tigris.org/files/documents/906/43035/site-1.4.0.zip
下載說明:可以根據下載主頁的說明,下載與Eclipse版本相對應的插件版本,建議下載1.0.4版本或者1.4.0版本。