Java編程小技巧集錦
發(fā)表時(shí)間:2023-08-13 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]東方快騎阿樂飛揚(yáng)1. Javadoc API文件產(chǎn)生器 Javadoc程序讀取一個(gè)Java類文件并自動(dòng)創(chuàng)建一組HTML文件,這些HTML 文件描述了Java類文件的類、變量、成員函數(shù),所有Jav...
東方快騎阿樂飛揚(yáng)
1. Javadoc API文件產(chǎn)生器
Javadoc程序讀取一個(gè)Java類文件并自動(dòng)創(chuàng)建一組HTML文件,這些HTML 文件描述了Java類文件的類、變量、成員函數(shù),所有Java類庫(kù)的APIHTML 文件都可以由此程序創(chuàng)建。Javadoc把軟件包名或源文件列表當(dāng)做一個(gè)變量。Javadoc依靠以@打頭的備注標(biāo)記來創(chuàng)建HTML文件,下面就是標(biāo)注的列表,它們被Javadoc用于在HTML 文件中創(chuàng)建鏈接。
選項(xiàng) 功能
@see classname 此標(biāo)注在類列表中增加一個(gè)到所提供類的"See Also"條目。
@see classname # methodname 此標(biāo)注創(chuàng)建一個(gè)到特定的成員函數(shù)的"See Also"條目。
@version text 此標(biāo)注在HTML文件中加入一個(gè)版本信息條目
@author text 此標(biāo)注在HTML文件中加入一個(gè)作者信息條目
@param name description 此標(biāo)注用成員函數(shù)備注來描述一個(gè)成員函數(shù)所帶變量
@return description 此標(biāo)注用成員函數(shù)備注來描述返回值
@exception classname 此標(biāo)注用成員函數(shù)備注來連接成員函數(shù)產(chǎn)生的異常出口
-classpath path 此命令行指定尋找Java文件的目錄
-d directory 此命令行指定用來放入最終HTML文件十分有用。
2 調(diào)試器--jdb.exe
Java調(diào)度器為Java程序提供了一個(gè)命令行調(diào)試環(huán)境。它既可在本地,也可在與遠(yuǎn)程的解釋器的一次對(duì)話中執(zhí)行。jdb于本地機(jī)器中可用如下的命令啟動(dòng)。
選項(xiàng) 功能
catch calssID 為特定異常出口而中斷
classes 列出當(dāng)前已知的類
clear classID:line 清除一個(gè)斷點(diǎn)
cont 從斷點(diǎn)處繼續(xù)執(zhí)行
down[n frames] 下移一個(gè)線程的堆棧
dump ID[ID...] 顯示所有對(duì)象信息
exit(或quit) 退出調(diào)試器
help(或?) 列出所有命令
ignore classID 忽略特定的異常出口
list[line number] 顯示源代碼
load classbame 載入要調(diào)試的Java類
locals 在當(dāng)前堆棧幀中顯示所有局部變量
memory 報(bào)告內(nèi)存使用情況
methods classID 列出一個(gè)類的成員函數(shù)集
print ID[ID...] 列出對(duì)象或域
resume [threadID...] 恢復(fù)線程(默認(rèn)情況恢復(fù)所有線程)
run class [args] 開始執(zhí)行已下載的Java類
step 執(zhí)行當(dāng)前行
stop in classID:method 在一成員函數(shù)中設(shè)一斷點(diǎn)
stop at classID:line 在一行設(shè)一斷點(diǎn)
suspend[threadID...] 停止一個(gè)線程(默認(rèn)情況停止所有線程)
hreads threadgroup 列出線程
thread threadID 設(shè)置當(dāng)前線程
threadgroups 列出線程組
threadgroup name 設(shè)置當(dāng)前線程組
up [n frames] 上移一個(gè)線程堆棧
use [path] 顯示或改變?cè)闯绦蚵窂?
where [threadID] or all 使一線程的堆線置空
!! 重復(fù)上一次命令
-host hostname 該命令告訴Jdb到哪里去建立遠(yuǎn)程運(yùn)行的Java解釋器對(duì)話過程
-password password 本選項(xiàng)告訴Jdb 用哪個(gè)密碼去與遠(yuǎn)程運(yùn)行的Java 對(duì)話進(jìn)程相連接。
密碼 password是由運(yùn)行帶有-debug選項(xiàng)的Java解釋器所提供的。
3 在Applet中引用jar中的資源文件
如果想在servlets程序設(shè)計(jì)中加上一些圖片,聲音,卡通等,只需使用sun 公司提供的一個(gè)有用的工具:jar。這個(gè)工具可以把這些資源文件合在一個(gè)文件里,避免頻繁的http request,可以下載緩存!
用jar中的資源的實(shí)例方法如下:加一個(gè)圖片按扭ImageButton
(提個(gè)醒i.e.g :聲音,卡通,圖片相對(duì)路徑為./img/my.gif)
import java.awt.*;
import java.awt.event.*; //下載吧
import javax.swing.*; //下載吧
public class ImageButtonApplet extends JApplet{
private String path = "/img/my.gif";
private ImageIcon myButtonIcon = new ImageIcon(getClass().getResource(path));
/*通過本人多次調(diào)試和看jdk自帶的demo 自代的API 文擋, 從JDK1.1得來,相關(guān)還有ClassLoader, demo在引用資源的時(shí)候采用方法 getClass().getResource(String sourceName)
如下:
public URL getResource(String name)
Finds a resource with a given name. This method returns null if no resource with this name is found. The rules for searching resources associated with a given class are implemented by the * defining class loader of the class.
This method delegates the call to its class loader, after making these changes to the resource name: if the resource name starts with "/", it is unchanged; otherwise, the package name is prepended to the resource name after converting "." to "/". If this object was loaded by the bootstrap loader, the call is delegated to ClassLoader.getSystemResource.
Parameters:
name - name of the desired resource
Returns:
a java.net.URL object.
*/
/**Initialize the applet*/
public void init(){
try {
if (myButtonIcon == null)
throw new Exception("cannot get the image!");
JButton iButton = new JButton(myButtonIcon);
Container cp = this.getContentPane();
cp.add(iButton);
}
catch (Exception e){
e.printStackTrace();
}
}
}
子編譯之后,把ImageButtonApplet.class和my.gif保持相對(duì)路徑打進(jìn)jar里面,對(duì)應(yīng)的HTML頁(yè)面代碼為<APPLET CODE = "ImageButtonApplet.class" CODEBASE = "." ARCHIVE = "my.jar" WIDTH = "200" HEIGHT = "200"></APPLET>。成功關(guān)鍵在于使用getClass().getResource(path).