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