日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java补漏(一)

發(fā)布時(shí)間:2023/12/2 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java补漏(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


第一章前言

????????在學(xué)長(zhǎng)的建議下,為了彌補(bǔ)之前學(xué)Java漏下的或者不是非常清楚的知識(shí)點(diǎn),買(mǎi)了本蠻好的教科書(shū)-Java學(xué)習(xí)筆記(JDK6)》,正式又一次學(xué)習(xí)。為了記下一些讓我恍然大悟的知識(shí)。寫(xiě)了本文檔。

第二章Java入門(mén)

2.1 JVM的認(rèn)識(shí)

????????說(shuō)究竟Java是一種計(jì)算機(jī)高級(jí)語(yǔ)言,一般高級(jí)語(yǔ)言假設(shè)須要在操作系統(tǒng)上執(zhí)行,那么它必須編譯成機(jī)器語(yǔ)言。比方C語(yǔ)言,它的編譯過(guò)程就是從C語(yǔ)言到匯編語(yǔ)言到機(jī)器語(yǔ)言。而Java的奇妙之處在于Java的編譯沒(méi)有直接變成機(jī)器語(yǔ)言,而是一種中間語(yǔ)言,那么中間語(yǔ)言要在機(jī)器上執(zhí)行就必須一個(gè)轉(zhuǎn)換環(huán)境,這就是Java虛擬機(jī)即JVM扮演的角色。

這樣做不是非常麻煩嗎?為什么不直接編譯成機(jī)器語(yǔ)言,而是變成中間語(yǔ)言?這樣做不是提高了Java開(kāi)發(fā)的成本嗎,還要安裝一個(gè)虛擬機(jī)?

????????的確,C語(yǔ)言的開(kāi)發(fā)在一些系統(tǒng)中甚至不須要下載編譯器,比方Linux系統(tǒng)下的C語(yǔ)言?xún)H僅須要寫(xiě)一個(gè).c文本文件,然后在終端上直接輸入gcc xxx.c指令就可以編譯成功。

????????可是這樣做的優(yōu)點(diǎn)在于,通過(guò)建立不同操作系統(tǒng)下的JVM版本號(hào)。能夠使得Java編譯后的中間語(yǔ)言通過(guò)不同系統(tǒng)版本號(hào)的JVM直接執(zhí)行。也就是說(shuō)我們不須要在編譯同一個(gè)Java程序多次。一次編譯成功的.class中間語(yǔ)言文件就可以在多個(gè)平臺(tái)上執(zhí)行。

而你在windows系統(tǒng)下c語(yǔ)言編譯得到的.exe文件卻不能在linux系統(tǒng)下執(zhí)行。你須要將原來(lái)的c語(yǔ)言源碼拿來(lái),在linux系統(tǒng)下再編譯一次。

????細(xì)致想想,這有點(diǎn)像司馬光砸缸的故事。是讓人離開(kāi)水還是水離開(kāi)人?是又一次編譯多次還是下載安裝一次虛擬機(jī)?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

2.2 JDKJRE的差別

????????JRE全稱(chēng)JavaRuntime Environment,即Java執(zhí)行環(huán)境,它是JVM的詳細(xì)實(shí)現(xiàn)。當(dāng)你下載好JDK的時(shí)候,你會(huì)發(fā)現(xiàn)名為jre的一個(gè)文件夾。打開(kāi)后是這樣一個(gè)文件夾。

2.1 jre文件夾文件夾

????????bin目錄中是一些可運(yùn)行文件,lib目錄中是運(yùn)行class文件所需的類(lèi)庫(kù)。

????????JDK。全名JavaDevelopment Kit,即Java開(kāi)發(fā)包。它本身自帶一個(gè)jre,主要用來(lái)開(kāi)發(fā)測(cè)試之用。這個(gè)jre與公共jre的差別在于有沒(méi)有server選項(xiàng)。

????????

2.2 jdk文件文件夾

2.3 JDK環(huán)境配置中的path系統(tǒng)變量和classpath系統(tǒng)變量

????????曾經(jīng)配置環(huán)境的時(shí)候一直沒(méi)理解path變量和classpath變量的作用。蹭這個(gè)機(jī)會(huì)好好理解一遍。

2.3.1 Path變量

????????Path變量是用來(lái)在cmd上加入指令的

????????比方說(shuō)如今你有一個(gè)英雄聯(lián)盟的游戲,你希望在cmd上直接打開(kāi),這時(shí)候你能夠在Path變量中加入英雄聯(lián)盟游戲exe可運(yùn)行文件所在文件夾地址

2.4 Client.exe雙擊便開(kāi)始游戲

2.5Client所在文件夾地址加入到Path變量中

?

2.6cmd上輸入Client指令

?

2.7輸入發(fā)現(xiàn)游戲啟動(dòng)了

?

從上面的步驟能夠看出Path變量的作用。

配置Jdk環(huán)境時(shí)在Path系統(tǒng)變量中加入Jdk目錄下的bin目錄的地址的目的就是為了讓操作系統(tǒng)找到指定的工具程序(以windows來(lái)講就是找到.exe文件)。

2.3.2 Classpath變量

????????設(shè)置Classpath的目的是讓Java運(yùn)行環(huán)境找到指定的Java程序,即.class文件。

在配置Java環(huán)境的時(shí)候,這個(gè)變量設(shè)置為jdk/lib目錄中的tools.jarrt.jar文件的絕對(duì)地址。

jar文件里事實(shí)上是一堆的.class文件,用壓縮文件管理器打開(kāi)tools.jarrt.jar。能夠看到一堆的.class文件。

2.8 tools.jar文件解壓后文件夾

?

jar格式壓縮文件Java執(zhí)行環(huán)境是能夠直接執(zhí)行的。執(zhí)行是尋找當(dāng)中的主方法。

如果你有一個(gè).class文件在桌面上,而你把桌面文件夾的地址加入到了Classpath變量中。那么會(huì)發(fā)生什么呢?

2.9Classpath中加入一個(gè)地址

2.10cmd上使用Java指令直接執(zhí)行Test.class文件

?

????????發(fā)現(xiàn)假設(shè)在Classpath中設(shè)置了一個(gè)文件夾地址。或者一個(gè)jar文件的地址,那么該文件夾中或者該jar文件里的class文件是能夠直接執(zhí)行的。

轉(zhuǎn)載于:https://www.cnblogs.com/cxchanpin/p/6783250.html

總結(jié)

以上是生活随笔為你收集整理的Java补漏(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。