Java語(yǔ)言的兩種機(jī)制
1. Java的虛擬機(jī)機(jī)制(JVM)
? ? ?–虛擬機(jī)機(jī)制保證Java程序的跨平臺(tái)特性矛市。
2. Java的垃圾回收機(jī)制
? ? –垃圾回收機(jī)制保證Java程序更安全酷誓、更高效。
開發(fā)Java的準(zhǔn)備
1. 安裝JDK
? ? ?—如果只需要運(yùn)行java程序只需安裝JRE,如果進(jìn)行開發(fā)編譯JDK也得裝上
2. 認(rèn)識(shí)JDK路徑中的每個(gè)子文件夾
? ? —bin.db.jre.lib 在bin文件夾中存放大部分我們平時(shí)用到的java命令速挑,比如:javac java ?javadoc
3. 配置PATH環(huán)境變量
4.選擇性的配置CLASSPATH環(huán)境變量
JAVA虛擬機(jī)與JAVA文件
1. 將代碼都保存在一個(gè)擴(kuò)展名為.java的文件中
2. 使用JDK提供的工具javac.exe對(duì)java文件進(jìn)行編譯,生成擴(kuò)展名為.class字節(jié)碼文件
3. 使用JDK提供的工具java.exe對(duì)字節(jié)碼文件進(jìn)行運(yùn)行
Java的最小程序單元是類
–[修飾符] class [類名]
–{
–}
※ ?要點(diǎn)總結(jié)
1. Java關(guān)鍵字:class (含義:類);
2. 類名毙玻,只要是一個(gè)合法的標(biāo)識(shí)符即可秸抚。但實(shí)際上推薦類名應(yīng)該是一個(gè)或多個(gè)有意義的單詞連綴而成速和,而且每個(gè)單詞的首字母要大寫。如: public class HelloWorld{} 剥汤。
一個(gè)Java程序
public class HelloWorld{
? ? ?public static void main(String[] args){
? ? ? ? ?System.out.println("Hello World!");
? ? ?}
}
運(yùn)行Java程序的兩個(gè)步驟
D:\>javac HelloWorld.java
D:\>java HelloWorld
Hello World!
※? 要點(diǎn)總結(jié)
1. *.java源代碼——使用javac命令編譯——生成一個(gè)或多個(gè)*.class文件颠放。
? ? ? javac-d [目錄](méi) [Java源文件]- 目錄指定將生成二進(jìn)制文件放到哪個(gè)目錄下;
? ? ? 無(wú)需指定生成文件的文件名吭敢,因?yàn)樯晌募偸牵侯惷?class碰凶;
? ? ? Java源文件中定義N個(gè)類,將會(huì)生成N個(gè)class文件鹿驼。 每個(gè)class對(duì)應(yīng)一個(gè)類欲低;
? ? ? 每個(gè)Java源文件可以包含多個(gè)類;
2. *.class文件蠢沿,使用java命令執(zhí)行伸头。運(yùn)行時(shí)只需輸入.class文件名。
? ? java -cp [目錄](méi) [Java類名] -目錄指定JVM到哪個(gè)目錄下去搜索Java類舷蟀;
? ?如果沒(méi)有指定-cp選項(xiàng)恤磷,java命令是根據(jù)CLASSPATH環(huán)境變量來(lái)搜索Java類面哼;
java源文件命名規(guī)則
1.源文件必須以.java為后綴。
2.每個(gè)編譯單元(類文件)都僅能有一個(gè)public class扫步。
3.如果源程序中定義了public類那么源文件名必須與類名一樣魔策。
4.一個(gè)類文件(*.java)中可以不存在public class,如果沒(méi)有定義public類河胎,那么源文件名可以任意闯袒。
5.class不可以是private和protected。默認(rèn)(friendly):包內(nèi)可見(jiàn)游岳。public:所有類可見(jiàn)政敢。
設(shè)置CLASSPATH環(huán)境變量
1. 通常無(wú)需設(shè)置CLASSPATH環(huán)境變量。因?yàn)镴DK會(huì)自動(dòng)在當(dāng)前路徑下搜索類胚迫。但如果設(shè)置了CLASSPATH環(huán)境變量喷户,那就需要在CLASSPATH環(huán)境變量中增加一個(gè)點(diǎn)號(hào)(.)代表當(dāng)前路徑。
2. 點(diǎn)擊電腦→屬性→高級(jí)→環(huán)境變量→用戶變量點(diǎn)新建访锻,變量名為:CLASSPATH,變量值為:.;存放*.class的路徑褪尝。
JDK,JRE,JVM三者間的關(guān)系
我們開發(fā)的實(shí)際情況是:我們利用JDK(調(diào)用JAVA API)開發(fā)了屬于我們自己的JAVA程序后,通過(guò)JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節(jié)碼期犬,在JRE上運(yùn)行這些JAVA字節(jié)碼河哑,JVM解析這些字節(jié)碼,映射到CPU指令集或OS的系統(tǒng)調(diào)用