JDK學(xué)習(xí)筆記之Java語言基礎(chǔ)
JDK學(xué)習(xí)筆記之Java語言的特點(diǎn)
java語言是解釋執(zhí)行,java源碼是通過編譯生成一種特殊的.class的中間字解碼文件,然后再有JVM進(jìn)行解釋執(zhí)行。
java語言對指針進(jìn)行了上層的封裝,它保證能夠通過這個指針(引用),來訪問有效的內(nèi)存單元。
java語言不允許多繼承,使繼承關(guān)系成樹裝圖,每個類都只能由一個父類。
java語言的開發(fā)效率高,但執(zhí)行效率低。(相當(dāng)于c++的55%)
JDK學(xué)習(xí)筆記之Java基礎(chǔ)概念
java的垃圾回收機(jī)制,在java中new的對象不需要向c++一樣進(jìn)行delete操作,JVM會根據(jù)情況回收垃圾對象。(懶漢機(jī)制,等待資源沒有的時候才回收)我們只能夠建議JVM進(jìn)行垃圾回收,例如(System.gc() RunTime.gc()這兩個方法就是建議JVM進(jìn)行垃圾回收的方法)
JDK,java開發(fā)工具包(類庫和運(yùn)行命令),JRE,java運(yùn)行環(huán)境,JVM,java虛擬機(jī)(解釋執(zhí)行的核心,對字節(jié)碼進(jìn)行翻譯成運(yùn)行環(huán)境的機(jī)器碼,它可以屏蔽平臺差異。JVM是不跨平臺的。)
JAVA_HOME,指明JDK安裝的位置,CLASSPATH,指明類文件的位置,PATH,指明命令的可執(zhí)行文件的位置。
java源文件的文件名必須和文件中定義public class的類名(大小寫頁要相同)相同。
java源代碼中的main方法的定義寫法。main方法是程序的入口。
- public static void main(String[] args){
- System.out.println("Hello world");
- }
java源文件也要先編譯,使用javac xxx.java格式的命令得來編譯,使用java xxx來運(yùn)行。
定義包結(jié)構(gòu)要放在有效代碼的第一行,package xxx.xxx,包的定義在一個程序中只能由一個,在加上包定義之后編譯可以使用javac -d 路徑 xxxx.java,這個-d這個命令行的參數(shù)可以指定包結(jié)構(gòu)的位置“.”代表當(dāng)前目錄。在運(yùn)行時要使用類的全名
java xxx.xxx.xxxx用包名以點(diǎn)分隔。運(yùn)行時要在包結(jié)構(gòu)的上一層目錄來運(yùn)行。
java中的注釋,
單行注釋 //......
多行注釋 /* .......*/
文檔注釋/** ........< p>(換行標(biāo)簽)*/,用javadoc命令可以根據(jù)原碼中的文檔注釋生成注釋文檔(html格式)。文檔注釋中可以使用html標(biāo)簽。
javadoc -d 路徑 (指定注釋文檔的保存路徑)
文檔注釋一般寫在類定義之前,方法之前,屬性之前。
在文檔注釋中可以用 @author 表示程序的作者,@version 表示程序的版本,前兩個注釋符號要寫在類定義之前,用于方法的注釋@param 對參數(shù)進(jìn)行注釋,@return 對返回值進(jìn)行注釋 @throws對拋出異常的注釋。
jar命令用于打一個xxx.jar文件
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目錄] 文件名 ...
選項:
-c 創(chuàng)建新的存檔
-t 列出存檔內(nèi)容的列表
-x 展開存檔中的命名的(或所有的〕文件
-u 更新已存在的存檔
-v 生成詳細(xì)輸出到標(biāo)準(zhǔn)輸出上
-f 指定存檔文件名
-m 包含來自標(biāo)明文件的標(biāo)明信息
-0 只存儲方式;未用ZIP壓縮格式
-M 不產(chǎn)生所有項的清單(manifest〕文件
-i 為指定的jar文件產(chǎn)生索引信息
-C 改變到指定的目錄,并且包含下列文件:
如果一個文件名是一個目錄,它將被遞歸處理。
清單(manifest〕文件名和存檔文件名都需要被指定,按'm' 和 'f'標(biāo)志指定的相同順序
示例1:將兩個class文件存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一個存在的清單(manifest)文件 'mymanifest' 將 foo/ 目錄下的所有
文件存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvfm classes.jar mymanifest -C foo/ .
一般在使用使用jar cvf 文件名.jar 文件所在路徑(xxx/xxx/xxx.class)也可以壓縮一個目錄,只要在制定路徑是指定為文件夾,jar命令的命令行參數(shù)在使用時可以以“-”開頭,也可以不用。
JDK學(xué)習(xí)筆記之Java程序的運(yùn)行過程
java程序的運(yùn)行過程也是Java語言的基礎(chǔ)。首先是啟動java虛擬機(jī),然后就是去找.class文件,先是從系統(tǒng)的類庫中找(系統(tǒng)之會在跟目錄下查找,所以需要完整類名),如果找不到的話會去CLASSPATH所設(shè)置的目錄去找。然后加載到j(luò)ava虛擬機(jī)中。
系統(tǒng)會在每個java程序中隱含導(dǎo)入了java.lang這個包,import 包名,導(dǎo)入包中的類文件。
java.lang包,這是一個基礎(chǔ)包。
java.util包,這個包是工具類的包。
java.io包,這個包是用于輸入輸出操作的
java.net包,這個包是用于網(wǎng)絡(luò)編程。
java.awt,java.swing,javax.swing java.event包,這些包用于java的圖形編程用的包。
applaction java的應(yīng)用程序,java應(yīng)用程序中必須有一個main()方法。
【編輯推薦】