1.測試驅(qū)動(dòng)開發(fā)
測試驅(qū)動(dòng)開發(fā)的基本思想就是在開發(fā)功能代碼之前,先編寫測試代碼,然后只編寫使測試通過的功能代碼,從而以測試來驅(qū)動(dòng)
整個(gè)開發(fā)過程的進(jìn)行。這有助于編寫簡潔可用和高質(zhì)量的代碼,有很高的靈活性和健壯性,能快速響應(yīng)變化,并加速開發(fā)過程
。
2.//TODO Auto-generated method stub
-自動(dòng)生成方法存根;其實(shí)這是eclipse自動(dòng)生成的;那是因?yàn)槲覀冎安僮鬟^了自動(dòng)代碼生成的功能,如用eclipse向?qū)?chuàng)建類的時(shí)候
,
有一個(gè)選項(xiàng):which method stubs would you like to create?如果我們選擇上了,則會(huì)自動(dòng)生成該方法,且有一句注釋://TODO
auto-generate
method stub,它強(qiáng)調(diào)這是自動(dòng)生成的方法存根,你可能需要添加一些具體的代碼。
可以編寫方法調(diào)用->再調(diào)用生成方法存根 (Stub) 操作->創(chuàng)建新的方法聲明
個(gè)人理解:即一個(gè)自動(dòng)生成代碼的功能。比如測試驅(qū)動(dòng)開發(fā)的時(shí)候,我們可以直接編寫方法調(diào)用,然后讓IDE自動(dòng)生成方
法
聲明即可,這樣可以大大提高工作效率(Visual Studio 已提供該功能)
http://msdn.microsoft.com/zh-cn/library/tcz8b6zc(v=vs.80).aspx
當(dāng)然我們的eclipse也有這樣的功能,比如本來一個(gè)Calculate的類只有add和deduct方法,然后我們完全可以在client調(diào)用:
calculate.devide(number),雖然我們的Calculate中沒有除的方法;這時(shí)候編譯出錯(cuò),點(diǎn)擊紅叉,eclipse會(huì)提示:
Create method 'devide(int)',然后右面會(huì)有生成的該方法聲明的提示;雙擊,即生成了該方法存根,便看到了熟悉的
//TODO Auto-generated method stub
對真實(shí)方法的模擬方法,這個(gè)方法稱之stub;存根(stub) 提供一種可以預(yù)先測試的未實(shí)現(xiàn)的對真實(shí)方法進(jìn)行模擬的機(jī)制;顧
stub被翻譯為'存根'。
3.Mylyn/BugZilla
4.Java類中熱替換的概念、設(shè)計(jì)與實(shí)現(xiàn)http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
5.eclipse debug:
1.條件斷點(diǎn)-右鍵斷點(diǎn)->break point properties->Conditional->輸入條件
2.Inspect選項(xiàng)->選擇感興趣的變量->Ctrl+shift+I/右鍵Inspect選項(xiàng)->計(jì)算表達(dá)式的值->Display 窗口的 Expressions 視圖中會(huì)顯示結(jié)果
(右鍵變量->Display)->Ctrl+shift+D->在Display中可以輸入變量名,然后鼠標(biāo)移過去即可或者Ctrl+shift+I
3.熱交換錯(cuò)誤修正->允許在調(diào)試器會(huì)話中改變源代碼->Resume
4.遠(yuǎn)程調(diào)試->Remote Java Application
5.F5,step info-> 單步調(diào)試,會(huì)進(jìn)入方法里面;
F6,step over,一行一行的調(diào)試;
F7,step return,執(zhí)行完當(dāng)前method,然后return跳出此method
step filter->一直執(zhí)行直到遇到未經(jīng)過濾的位置或斷點(diǎn)->window-preferences-java-Debug-step Filtering
resume 重新開始執(zhí)行debug,一直運(yùn)行直到遇到breakpoint
hit count 設(shè)置執(zhí)行次數(shù) 適合程序中的for循環(huán)(設(shè)置 breakpoint view-右鍵hit count)
inspect 檢查 運(yùn)算。執(zhí)行一個(gè)表達(dá)式顯示執(zhí)行值(Ctrl+shift+I)
watch 實(shí)時(shí)地監(jiān)視對象、方法或變量的變化(選擇變量->右鍵watch)
6.我們常說的斷點(diǎn)(breakpoints)是指line breakpoints,除了line breakpoints,還有其他的斷點(diǎn)類型:field(watchpoint)breakpoint,method
breakpoint ,exception breakpoint;
field breakpoint 也叫watchpoint(監(jiān)視點(diǎn)) 當(dāng)成員變量被讀取或修改時(shí)暫掛
添加method breakpoint 進(jìn)入/離開此方法時(shí)暫掛(Run-method breakpoint)
添加Exception breakpoint 捕抓到Execption時(shí)暫掛
斷點(diǎn)屬性-1.hit count 執(zhí)行多少次數(shù)后暫掛 用于循環(huán)
2.enable condition 遇到符合你輸入條件(為ture\改變時(shí))就暫掛
3.suspend thread 多線程時(shí)暫掛此線程
4.suspend VM 暫掛虛擬機(jī)
7.variables 視圖里的變量可以改變變量值,在variables 視圖選擇變量點(diǎn);擊右鍵--change value.一次來進(jìn)行快速調(diào)試
8.debug 過程中修改了某些code后--〉save&build-->resume-->重新暫掛于斷點(diǎn)
resume 當(dāng)debug調(diào)試跑出異常時(shí),運(yùn)行resume,重新從斷點(diǎn)開始調(diào)試
9.如果一行有很多方法,就按幾次F5和F7
10.斷點(diǎn):
1.條件斷點(diǎn):顧名思義就是一個(gè)有一定條件的斷點(diǎn),只有滿足了用戶設(shè)置的條件,代碼才會(huì)在運(yùn)行到斷點(diǎn)處時(shí)停止(見1)
2.變量斷點(diǎn):變量也可以接受斷點(diǎn),在變量所指示的所在行,雙擊->出現(xiàn)一個(gè)不同于行斷點(diǎn)的標(biāo)記->變量的值初始化,或是
變量值改變時(shí)可以停止(access/modification)
3.方法斷點(diǎn)-將斷點(diǎn)打在方法的入口處;方法斷點(diǎn)的特別之處在于它可以打在 JDK的源碼里,由于 JDK 在編譯時(shí)去掉了調(diào)試
信
息,所以普通斷點(diǎn)是不能打到里面的,但是方法斷點(diǎn)卻可以,可以通過這種方法查看方法的調(diào)用棧
4.代碼停在了斷點(diǎn)處,但是傳過來的值不正確,如何修改一下變量值保證代碼繼續(xù)走正確的流程,或是說有一個(gè)異常分支
老是進(jìn)不去,能不能調(diào)試時(shí)改一下條件,看一下異常分支代碼是否正確?
Variables ->選擇"Change Value..." 在彈出的對話框中修改變量的值
或是在下面的值查看窗口中修改,保用Ctr+S 保存后,變量值就會(huì)變成修改后的新值了
5.調(diào)試回退-能在當(dāng)前線程的棧幀中回退,也就說最多只能退回到當(dāng)前線程的調(diào)用的開始處->回退時(shí),請?jiān)谛枰赝说木€程
方法上點(diǎn)右鍵,選擇 "Drop to Frame"
6.遠(yuǎn)程調(diào)試-使用遠(yuǎn)程調(diào)試的前提是服務(wù)器端和客戶端的代碼是一致的
7.異常斷點(diǎn)-debug的Breakpoints視圖->工具欄上有一個(gè)黃色的嘆號工具->add java exception breakpoint
調(diào)試結(jié)束后,如果想重新debug的話,右鍵supend的線程,resume
可以通過Expressions選項(xiàng)計(jì)算表達(dá)式的值
6.Resin illegal utf8 encoding at 0x..-
http://flysnail.net/?p=42
linux(修改Linux系統(tǒng)變量,把LANG=zh_CN.utf8,改成LANG=en_US.utf8)
本人解決問題-是jsp編譯的問題->GMLangConstants中沒有ACTIVE;由于本人沒有安裝jsp/j2ee插件,所以沒有在ide中顯示編譯錯(cuò)
誤;我勒個(gè)擦
com.caucho.jsp.JspParseException:illegal utf8 encoding at 0x5
at com.caucho.jsp.JspCompilerInstance.compile(JspCompilerInstance.java:434)
.....從錯(cuò)誤提示看, 也應(yīng)該是jsp編譯的問題啊
at com.caucho.java.JavaErrorParser.parseErrors
at com.cahcho.java.InternalCompiler.executeInt()
at com.caucho.java.InternalCompiler.compileInt()
....從錯(cuò)誤提示看,也應(yīng)該看的出來是編譯int出錯(cuò)。。應(yīng)該可以聯(lián)想到是GMLangConstants中常量的問題
決定裝WTP插件
安裝wtp插件后,xml報(bào)錯(cuò)-默認(rèn)情況下wtp會(huì)去驗(yàn)證這些xml文件;可以不用去管它;目前只是用wtp來提示java語法和編譯錯(cuò)誤
http://www.360doc.com/content/11/0329/22/715213_105734713.shtml;當(dāng)然裝上wtp后,會(huì)在xml catalog中添加一些dtd;若不影響web應(yīng)用運(yùn)
行,可以取消eclipse的xml validate功能;
7.groovy腳本
Groovy是一種新興的 Java 2 平臺(tái)語言。Groovy 代碼能夠與 Java 代碼很好地結(jié)合,也能用于擴(kuò)展現(xiàn)有代碼。
8.數(shù)據(jù)庫連接池BoneCP/C3P0/DBCP
9.一定要多去http://www.ibm.com/developerworks/cn/,不了解的東西先去這里查詢;
10.JSON
11w3c-"<" represents the < sign;">" represents the > sign;"&" represents the & sign. ;"" represents the " mark.
12.eclipse使用-
1.剛發(fā)現(xiàn)每切換eclipse的文件,就會(huì)打開該文件所在的package位置,很煩人;其實(shí)這個(gè)是可以取消的->Package Explorer右側(cè)有一
個(gè)倒立的小三角,這里面有關(guān)于package的設(shè)置,其中經(jīng)常用到的是Package Presentation->Flat/Hierarchical/,還有Link with Editor,將
這個(gè)勾干掉,就解決了提出的問題;如果需要查該文件所在的package,則可以用快捷鍵alt+shit+w或者菜單選項(xiàng)Navigate的show in選
項(xiàng)
2.Working Set-http://www.cnblogs.com/bjzhanghao/archive/2005/11/29/287251.html
3.eclipse編譯-工程->右鍵build path->Source->最下面有一個(gè)Default output folder,這個(gè)即編譯輸出的目錄,默認(rèn)是工程的bin目錄,
不過做web項(xiàng)目,通常是WEB-INF/classes
4.eclipse不能自動(dòng)編譯->eclipse菜單選項(xiàng)Project->勾選上Build Automatically->Clean
eclipse的clean選項(xiàng)-重新構(gòu)建項(xiàng)目/清理項(xiàng)目/用eclipse或myeclipse重新編譯(含class文件、jsp文件、ftl文件等等),前提是Java
Build Path中配置好了;其實(shí)主要作用就是把編譯好的class等文件刪除,激活eclipse的自動(dòng)編譯。解決的問題就是,有時(shí)候
你
把代碼改了,但因?yàn)橐恍┪粗脑颍琫clipse的自動(dòng)編譯沒有成功,導(dǎo)致運(yùn)行結(jié)果不正常。當(dāng)你的工程出現(xiàn)一些莫名其妙
的
錯(cuò)誤時(shí)(當(dāng)然不是語法錯(cuò)誤),用一下這個(gè)功能,效果不錯(cuò)的;clean 是將 bin 文件夾里面的所有文件都刪除,如果你是自動(dòng)
編譯的話就會(huì)復(fù)制資源文件到 bin,并復(fù)制編譯 Java 生成的 class。但這是一個(gè) Java 項(xiàng)目才可以這樣處理;將工程中的.class文
件刪除,同時(shí)重新編譯工程(Java文件),生成.class文件,類似于jbuild中的rebuild。
http://www.aygfsteel.com/javafield/archive/2008/01/05/172940.html
http://wangbaoaiboy.blog.163.com/blog/static/52111910200911312342271/
5.svn-update to revision->選擇版本號,Revision或者Head revision- Latest Revision,It is the very latest/current revision of the project.
svn使用必須要先update
6.eclipse-Refactor功能
7.Ctrl+Shift+G-eclipse->Search->Reference->Workspace
8.選中代碼行,Alt+上下方向鍵可移動(dòng)代碼行位置
9.選中-shift+end/home,alt+shift+left/right 選中上一個(gè)/下一個(gè)單詞-Ctrl+Shift+Left/Right
10.顯示快捷鍵幫助:Ctrl+Shift+L
11.eclipse 3.6 Ctrl+shift+down/up快捷鍵不好用,不過用Ctrl+shift+L,可以看到,然后可以使用;
解決-快捷鍵沖突, 與Intel顯示芯片驅(qū)動(dòng)快捷鍵沖突http://hbxflihua.iteye.com/blog/1225301
桌面->右鍵屬性->菜單設(shè)置->高級->Inter(R) Graphics Media Accelerator Driver->圖形屬性->快捷鍵->將啟用快捷鍵的對勾
干掉
12.工程添加user liberary,這樣可以更好的管理lib,否則的話,所有的jar放在一起,很難管理,也不方便;
13.{@link}javadoc必須指明包名,成功的標(biāo)志是方法名和類名都可以通過f3或者ctrl+左鍵訪問; 且輸入包名后按#號可以出現(xiàn)方法
14.如果工程包很多,需要查看某個(gè)包時(shí),可以更改包查看方式-Package presentation->hierarchical即可,還可以選擇filter過濾條件
15.debug的時(shí)候,可以通過Display窗口根據(jù)代碼提示輸入某表達(dá)式,(復(fù)制太麻煩)然后放到Expressions中查看值或者右鍵watch
自動(dòng)放入Expressions或者右鍵inspect
16.eclipse debug模式下:
1. 開發(fā)工具(Eclipse)編譯出的classes文件,默認(rèn)即為debug模式
2. 使用javac命令編譯,需要加入 –g 參數(shù)
3. 使用ant中的javac任務(wù)編譯,需要為javac任務(wù)添加deubg屬性
debug=”true”
debuglevel="lines,vars,source"
效果:使用debug模式編譯出的classes文件里面包含代碼行號信息,體積比非debug模式編譯出的文件稍大一點(diǎn),如果此類
代碼中拋出異常,Exception中會(huì)明確標(biāo)出發(fā)生異常代碼的行號,而不是Unknown Source;
此類方法編譯出的classes文件支持按行進(jìn)行debug跟蹤,支持以JPDA方式跟蹤調(diào)試,定位問題和排錯(cuò)都非常方便
17.熱部署->所謂熱部署,就是在應(yīng)用正在運(yùn)行的時(shí)候升級軟件,卻不需要重新啟動(dòng)應(yīng)用。 對于Java應(yīng)用程序來說,熱部署
就是在運(yùn)行時(shí)更新Java類文件。在基于Java的應(yīng)用服務(wù)器實(shí)現(xiàn)熱部署的過程中,類裝入器扮演著重要的角色。大多數(shù)基于Java的
應(yīng)用服務(wù)器,包括EJB服務(wù)器和Servlet容器,都支持熱部署。類裝入器不能重新裝入一個(gè)已經(jīng)裝入的類,但只要使用一個(gè)新的類
裝入器實(shí)例,就可以將類再次裝入一個(gè)正在運(yùn)行的應(yīng)用程序。
18.eclipse debug-熱交換錯(cuò)誤修正:動(dòng)態(tài)代碼修正:---尿性
如果運(yùn)行的是 Java 虛擬機(jī)(Java Virtual Machine,JVM)V1.4 或更高的版本,Eclipse 支持一個(gè)叫做熱交換錯(cuò)誤修正(Hotswap Bug
Fixing)的功能,JVM V1.3 或更低的版本不支持該功能。該功能允許在調(diào)試器會(huì)話中改變源代碼,這比退出應(yīng)用程序、更改代
碼、重新編譯、然后啟動(dòng)另一個(gè)調(diào)試會(huì)話更好。要利用該功能,在編輯器中更改代碼后重新調(diào)試即可。由于 JVM V1.4 與 Java
平臺(tái)調(diào)試器架構(gòu)(Java Platform Debugger Architecture,JPDA)兼容,所以才有可能具備該功能。JPDA 實(shí)現(xiàn)了在運(yùn)行的應(yīng)用程序
中替換經(jīng)過修改的代碼的功能。如果應(yīng)用程序啟動(dòng)時(shí)間較長或執(zhí)行到程序失敗的地方時(shí)間很長,那么這一點(diǎn)特別有用。
19.Java啟動(dòng)內(nèi)存參數(shù)-xmx,xms,xss
13.JSTL/javascript
14.Jdk1.6自帶的JavaDb,derby
15.深入理解Java虛擬機(jī):JVM高級特性與最佳實(shí)踐
16.List轉(zhuǎn)數(shù)組-int size = list.size(); String[] arr = (String[])list.toArray(new String[size]); //寫demo測試一下
17.http://www.javaconcurrencyinpractice.com/
18.javap反編譯顯示的方法簽名-參數(shù)+返回值
Field Descriptor Java Language Type
Z boolean
B byte
C char
S short
I int
J long
F float
D double
引用數(shù)據(jù)類型-以“L”開頭,以“;”結(jié)束,中間對應(yīng)的是該類型的路徑
如-如:
String : Ljava/lang/String;
Object: Ljava/lang/Object;
數(shù)組表示: 數(shù)組表示的時(shí)候以“[” 為標(biāo)志,一個(gè)“[”表示一維數(shù)組
如:int [] :[I
Long[][] : [[J
例子-
public void test1(int i){}-(I)V -------"()" 里面代表的是方法的參數(shù),后面外面的部分代表的是該方法的返回值
public Cat test4(Cat c){ return new Cat();} --------(Lcom/demo/cat;)Lcom/demo/cat
http://www.cnblogs.com/luxiaofeng54/archive/2011/08/18/2143977.html
19.win+r進(jìn)入運(yùn)行,輸入system32可以直接進(jìn)入C:\WINDOWS\system32目錄;輸入c:或者d:可直接進(jìn)入相應(yīng)的盤符;
20.ScriptEngine/javax.xml/Velocity.mergeTemplate
1.Velocity是一個(gè)基于java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java
代碼定義的對象。
http://airport.iteye.com/blog/23634
http://www.ibm.com/developerworks/cn/java/j-velocity/
2.freemaker
FreeMarker是一個(gè)模板引擎,一個(gè)基于模板生成文本輸出的通用工具,使用純Java編寫;
http://blog.csdn.net/ITFLY8/article/details/1662057
21.Xshell/SecureCRT/putty/MobaXterm/pietty/ssh secure shell client/kitty
22.webgame機(jī)器人壓力測試-scala
五大基于JVM的腳本語言
Groovy/JRuby /Scala/Fantom/ Jython
23.BeanShell
24.動(dòng)態(tài)調(diào)用動(dòng)態(tài)語言,第 1 部分: 引入 Java 腳本 API-http://www.ibm.com/developerworks/cn/java/j-javascripting1/
25.主題:java腳本框架介紹與應(yīng)用(1)-http://www.iteye.com/topic/464932
26.<<Java腳本編程>>,語言,框架與模式-某讀書筆記http://macrochen.iteye.com/blog/833351-準(zhǔn)備今天購買
注意-時(shí)刻關(guān)注新書
購書-Java腳本編程/深入理解Java虛擬機(jī)/Effective Java中文版第二版/Java編程語言(第三版)
[這本書太早了,2003年就上架,得考慮一下]-晚上回去買吧
27.Scala程序設(shè)計(jì):Java虛擬機(jī)多核編程實(shí)戰(zhàn)
28.《Programming Scala》《Programming in Scala》