平臺(tái)相關(guān)性
window系統(tǒng)只能運(yùn)行的可執(zhí)行文件(exe)
linux系統(tǒng)只能運(yùn)行l(wèi)inux系統(tǒng)中, 反之亦然
-
問(wèn)題: 如何做到街機(jī)游戲的跨平臺(tái)性
游戲包: 與平臺(tái)無(wú)關(guān)(在不同平臺(tái)可以移植)
游戲模擬器: 與平臺(tái)有關(guān)(只需要開(kāi)發(fā)一次)
Java的跨平臺(tái)性原理
高級(jí)語(yǔ)言中, 代碼叫源代碼, 存放代碼的文件叫源文件
-
通過(guò)JavaC編譯工具編譯成字節(jié)碼文件
-
字節(jié)碼文件(class文件)
class文件只能被VM識(shí)別,程序員看不懂
和任何平臺(tái)無(wú)關(guān), 不能直接運(yùn)行在window / linux / mac系統(tǒng)
Java虛擬機(jī)(JVM): 可識(shí)別字節(jié)碼文件
-
-
啟動(dòng)JVM, 并指定加載哪一份字節(jié)碼文件
- 啟動(dòng)JVM的工具: Java
-
總結(jié)
編譯之后會(huì)生成與平臺(tái)無(wú)關(guān)的字節(jié)碼文件
得依賴不同平臺(tái)的虛擬機(jī)(JVM, JVM不跨平臺(tái))
JDK - JRE - JVM
JRE概念: Java運(yùn)行環(huán)境, 需要JRE支持,包含JVM
-
JVM概念
Java虛擬機(jī), 是運(yùn)行所有Java程序的虛擬計(jì)算機(jī), 好比街機(jī)游戲的模擬器
JVM是Java語(yǔ)言的運(yùn)行環(huán)境, 用于讀取并處理編譯過(guò)的與平臺(tái)無(wú)關(guān)的字節(jié)碼(class)文件, 從而實(shí)現(xiàn)Java的可移植性
Java編譯和運(yùn)行機(jī)制

- Java語(yǔ)言: 編譯性語(yǔ)言, 解析性語(yǔ)言
Java基本語(yǔ)法
Java語(yǔ)言嚴(yán)格區(qū)別大小寫
一個(gè)Java源文件里可以定義多個(gè)Java類, 但其中最多一個(gè)類被定義為
public類, 若源文件中包括了public類, 源文件必須和該public類同名一個(gè)源文件中包含N個(gè)Java類時(shí), 成功編譯后會(huì)生成N份字節(jié)碼文件, 即每個(gè)類都會(huì)生成單獨(dú)的一個(gè)class類, 且字節(jié)碼文件名和其對(duì)應(yīng)的類名相同
-
若一個(gè)類必須運(yùn)行,則必須擁有main方法, 因?yàn)閙ain方法是程序的入口
public static viod main(String[], args){}
編程建議
一個(gè)Java源文件只定義一個(gè)類, 不同類采用不同源文件定義
將每個(gè)源文件中單獨(dú)定義的類都定義為
public, 保持Java源文件的主文件名與源文件的類名一致(針對(duì)初學(xué))
Java基礎(chǔ)
-
注釋類型: 多種類型注釋不能嵌套
單行
// 我是單行注釋多行
/*多行注釋*/-
文檔
/**文檔注釋 */##### 關(guān)鍵字 * 定義: 一些事先定義, 有特殊含義和用途的單詞(小寫開(kāi)頭) ##### 標(biāo)識(shí)符 * 定義: 增強(qiáng)代碼的可讀性會(huì)定義很多名字, 如: 類名, 方法名, 變量名 * 命名規(guī)則 1. 由字母, 數(shù)字, 下劃線, $符組成. 但不能以數(shù)字開(kāi)頭 2. 大小寫敏感 3. 不能使用Java中關(guān)鍵字和保留字 4. 類名首字母大寫, 不能使用Java內(nèi)置類名