1.Java的基本認(rèn)識(shí)
1.Java 是什么?
java是一門面向?qū)ο蟮挠?jì)算機(jī)編程語言。不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。
2.面向?qū)ο笫鞘裁矗?/h1>
面向?qū)ο?Object Oriented)是軟件開發(fā)方法,一種編程范式.
面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法.
面向?qū)ο笫怯?jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物.
面向?qū)ο笫且环N編程思想,是由面向過程的編程思想升華而來。
例如:我們要從電視塔到鐘樓
? ? ? ? ? 如果我們采用面向過程的編程思想來指導(dǎo)實(shí)現(xiàn)上面的動(dòng)作。我們就需要將從電視塔開始到鐘樓之間所走的或者所經(jīng)歷的每一步都記錄下來,記錄下來的每一步就是從電視塔到鐘樓的過程。
? ? ? ? ? 面向過程的編程思想,有點(diǎn)像座公交車
? ? ? ? ? 如果我們采用面向?qū)ο蟮木幊趟枷雭碇笇?dǎo)實(shí)現(xiàn)上面的動(dòng)作。我們現(xiàn)在只需要知道起點(diǎn)是
電視塔,終點(diǎn)是鐘樓就可啦,作為起點(diǎn)的電視塔就是一個(gè)對(duì)象,作為終點(diǎn)的鐘樓也是一個(gè)對(duì)象。
? ? ? ? ? 面向?qū)ο蟮木幊趟枷?,有點(diǎn)像滴滴打車
3.面向?qū)ο蟮幕咎卣魇鞘裁矗?/h1>
1.封裝--將原本分散的數(shù)據(jù)收集到一起,形成一個(gè)標(biāo)識(shí),來標(biāo)識(shí)這個(gè)事物。
2.繼承--與我們?cè)诂F(xiàn)實(shí)生活中認(rèn)識(shí)的繼承是一樣意思,孩子從父母那里得到一些財(cái)產(chǎn)。
3.多態(tài)--同一個(gè)事務(wù),在不同的環(huán)境中,表現(xiàn)出不同的狀態(tài)。
4.抽象--抽就是抽取,象就是象某個(gè)東西一樣,將現(xiàn)實(shí)生活中的元素抽出來,作出一個(gè)象這個(gè)事物的元素。
4.Java的三大版本是什么以及它們的區(qū)別?
java針對(duì)不同的領(lǐng)域提供了不同的開發(fā)版本。
1.javaSE[java的標(biāo)準(zhǔn)版],2005年之前叫J2SE,允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的java應(yīng)用程序;它支持了java web服務(wù)開發(fā)的類,并為JavaEE提供基礎(chǔ)。
2.javaEE[java的企業(yè)版],2005年之前叫J2EE,幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端java應(yīng)用程序,java ee是在java se的基礎(chǔ)上構(gòu)建的,它提供web服務(wù)、組建模型、管理和
通信api,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)和web2.0應(yīng)用程序。
3.javaME[java的微型版],2005年之前叫J2ME,在移動(dòng)設(shè)備和嵌入式設(shè)備上運(yùn)行的應(yīng)用程序提供一個(gè)健壯或靈活的環(huán)境。javame包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持?;趈avame規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。
總結(jié)一下:
JavaSE:標(biāo)準(zhǔn)版,基于個(gè)人計(jì)算機(jī)的應(yīng)用。
JavaEE:企業(yè)版,定位在服務(wù)器端的應(yīng)用。(包含JavaSE)
JavaME:微型版,消費(fèi)型電子產(chǎn)品。
5.Java的三大版本之間的關(guān)系?
javaSE[java的標(biāo)準(zhǔn)版]是javaEE[java的企業(yè)版]和javaME[java的微型版]的基礎(chǔ)。
javaEE[java的企業(yè)版]包含javaSE[java的標(biāo)準(zhǔn)版]。
6.Java開發(fā)工具JDK是什么?由幾部分組成?每一部分都是什么?
JDK是Java語言的軟件開發(fā)工具包。JDK是整個(gè)java開發(fā)的核心。
JDK由2部分組成
? ? ? ? 第一部分:JAVA的運(yùn)行環(huán)境[JRE](JVM+Java系統(tǒng)類庫),主要負(fù)責(zé)運(yùn)行java程序。
? ? ? ? ? ? ? ? ? ? ? ?JAVA的運(yùn)行環(huán)境[JRE]有2部分組成
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.JVM-java虛擬機(jī)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.Java系統(tǒng)類庫
? ? ? ? 第二部分:JAVA開發(fā)工具集,主要負(fù)責(zé)開發(fā)java程序。
JDK即可以開發(fā)java程序也可以運(yùn)行java程序。

7.JDK的下載安裝環(huán)境變量配置和測(cè)試
JDK的下載地址:
https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html


?JDK的安裝






JDK的環(huán)境變量配置
?開始--控制面板--系統(tǒng)--高級(jí)系統(tǒng)設(shè)置--高級(jí)--環(huán)境變量--系統(tǒng)變量

1.新建JAVA_HOME
? ? ? ? 系統(tǒng)變量--新建
? ? ? ? 變量名:JAVA_HOME
? ? ? ? 變量值:jdk的安裝路徑【D:\java\jdk8.0】

2.編輯Path
? ? ? ? 系統(tǒng)變量--Path--編輯
? ? ? ? 變量名:Path
? ? ? ? 變量值:在最前面加上“%JAVA_HOME%\bin;”

3.新建CLASSPATH
? ? ? ? 系統(tǒng)變量--新建
? ? ? ? 變量名:CLASSPATH
? ? ? ? 變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

測(cè)試配置的環(huán)境變量是否可用
開始--cmd--打開命令提示行--輸入“java -version”


如果出現(xiàn)“不是內(nèi)部命令”這個(gè)字樣,那么說明環(huán)境變量配置有誤。
8.通過記事本編寫一個(gè)簡單的Java程序編譯并運(yùn)行
1.在指定的文件夾中新建一個(gè)記事本文件。
2.打開記事本文件,輸入java代碼
public? class? Hello{
? ? public static void main(String args[]){
? ? ? ? System.out.println("Hello,網(wǎng)星");
? ? }
}
3.保存,關(guān)閉記事本文件,修改記事本文件的名稱
? ? ? ? 文件名稱為java代碼中的class后面的單詞
? ? ? ? 文件擴(kuò)展名為“.java”
? ? ? ? 文件名稱====Hello.java
? ? ? ? 以“.java”結(jié)尾的文件被稱為java源文件。
4.開始--cmd--打開命令提示行--進(jìn)入到源文件所在位置
? ? C:\Users\Administrator>f:
? ? F:\>cd 20220607\java基礎(chǔ)\20220608基礎(chǔ)(1)\code
? ? F:\20220607\java基礎(chǔ)\20220608基礎(chǔ)(1)\code>
?5.編譯源文件
? ? ? ? 命令提示行中源文件所在位置的路徑下輸入 “javac Hello.java”
? ? ? ? F:\20220607\java基礎(chǔ)\20220608基礎(chǔ)(1)\code>javac Hello.java
? ? ? ? 編譯成功以后會(huì)在源文件所在位置的路徑產(chǎn)生一個(gè)“.class”結(jié)尾的文件,這個(gè)文件
就是java的字節(jié)碼文件
? ? ? ? 以“.class”結(jié)尾的文件被稱為java字節(jié)碼文件。
6.運(yùn)行字節(jié)碼文件
? ? ? ? 命令提示行中源文件所在位置的路徑下輸入 “java Hello”? ??
? ? ? ? F:\20220607\java基礎(chǔ)\20220608基礎(chǔ)(1)\code>java Hello
? ? ? ? Hello,網(wǎng)星
? ? ? ? 不需要輸入".class"的后綴名。

9.Java程序的執(zhí)行過程?
Java程序運(yùn)行時(shí),必須經(jīng)過編譯和運(yùn)行兩個(gè)步驟。首先將后綴名為.java的源文件進(jìn)行編譯,最終生成后綴名為.class的字節(jié)碼文件。然后Java虛擬機(jī)將編譯好的字節(jié)碼文件加載到內(nèi)存(這個(gè)過程被稱為類加載,是由加載器完成的),然后虛擬機(jī)針對(duì)加載到內(nèi)存的java類進(jìn)行解釋執(zhí)行,顯示結(jié)果。
Java的運(yùn)行原理
在Java中引入了虛擬機(jī)的概念,即在機(jī)器和編譯程序之間加入了一層抽象的虛擬的機(jī)器。這臺(tái)虛擬的機(jī)器在任何平臺(tái)上都提供給編譯程序一個(gè)的共同的接口。編譯程序只需要面向虛擬機(jī),生成虛擬機(jī)能夠理解的代碼,然后由解釋器來將虛擬機(jī)代碼轉(zhuǎn)換為特定系統(tǒng)的機(jī)器碼執(zhí)行。在Java中,這種供虛擬機(jī)理解的代碼叫做字節(jié)碼(ByteCode),它不面向任何特定的處理器,只面向虛擬機(jī)。每一種平臺(tái)的解釋器是不同的,但是實(shí)現(xiàn)的虛擬機(jī)是相同的。Java源程序經(jīng)過編譯器編譯后變成字節(jié)碼,字節(jié)碼由虛擬機(jī)解釋執(zhí)行,虛擬機(jī)將每一條要執(zhí)行的字節(jié)碼送給解釋器,解釋器將其翻譯成特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運(yùn)行。
Java代碼編譯是由Java源碼編譯器來完成,流程圖如下所示:


10.Java語言的特點(diǎn)??
1.面向?qū)ο?br>2.跨平臺(tái)【系統(tǒng)】,因?yàn)橛蠮VM,所以才可以跨平臺(tái)【系統(tǒng)】
?? ? ?【一次編譯,到處運(yùn)行】
3.異常處理,可以保存程序的安全性和健壯性
4.支持多線程,提高程序的執(zhí)行效率
5.提供自動(dòng)垃圾回收機(jī)制
......