是1995年SUN公司推出的高階程式語言,是網路導向的語言,WEB應用程式首選的語言(安卓底層,大數據hadoop框架用java編寫,Spark用Scala寫,Scala用java寫的),(相對其他語言)簡單易學、安全可靠、完全物件導向、跨平台(作業系統,完全忽略作業系統,寫完後任何作業系統都可以使用)。
在Java中引入了虛擬機器的概念,即在機器和編譯程式之間加入了一層抽象的虛擬的機器。這台虛擬的機器在任何平台上都提供給編譯程式一個的共同的介面。編譯程式只需要面向虛擬機,產生虛擬機器能夠理解的程式碼,然後由解釋器來將虛擬機程式碼轉換為特定係統的機器碼執行。在Java中,這種供虛擬機器理解的程式碼叫做字節碼(ByteCode)(class檔案的內容),它不面向任何特定的處理器,只面向虛擬機器。每一種平台的解釋器是不同的,但是實現的虛擬機器是相同的。 Java原始程式經過編譯器編譯後變成字節碼,字節碼由虛擬機器解釋執行,虛擬機器將每一條要執行的字節碼送給解釋器,解釋器將其翻譯成特定機器上的機器碼,然後在特定的機器上運行。
跨平台的原理
話說,在北京,一般都是講北京話的,上海,一般都是將上海話,廣東,廣東話...
現有一公文發出,要全國執行,該當如何? ——先統一翻譯成國語。各地在將國語版本翻譯成當地的方言。
這裡,北京、上海就是不同類型的機器windows,linux...
編譯(javac)就是將公文翻譯成普通話的過程,而編譯出的.class文件,就是公文的普通話版本。
在執行的時候,各地的翻譯就是jvm,負責將.class轉換成本地能夠理解的方言來執行。
Java虛擬機---Java Virtual Machine---JVM,針對不同的作業系統,開發了不同的Java虛擬機,一段Java程式並不是直接運行在電腦上而是運行在Java虛擬機器上,Java虛擬機器將Java程式翻譯成目前系統能夠辨識的指令。 Java語言是跨平台的,但是Java虛擬機器不是跨平台的。
J2SE---標準版
J2EE---企業版
J2ME---行動版(早期有人用,現在幾乎不用了)
JVM---Java能夠跨平台的前提
JRE---Java Runtime Environment---Java執行環境---JVM+核心類別庫
JDK---Java Development Kit---Java開發工具包---開發工具+JRE
java.sun.com
www.oracle.com
1994年叫Oak---橡樹
#後改Java---爪哇
##JDK1.0(-JDK1.1 -1.2(Applet/swing---GUI後來淘汰)-1.3-1.4-1.5(JDK5.0,十個特性)---JDK6---JDK7.0---JDK8(也可以叫1.8/十個特性)到了1.8共有3000多個類別和介面方法。
C:\\Program Files(X86)
注意:安裝路徑中不要出現空格和中文!程式碼翻譯成電腦能讀懂的語言的過程
注意:
1. class檔案的檔案名稱和類別名稱對應
3. 公共類別的類別名稱必須和Java檔案的檔案名稱一致
4. Java程式運行的入口是主函數,沒有主函數,Java程式能夠編譯
環境變數
是指為作業系統指定的一些運行參數的量
(1)新建->變數名"JAVA_HOME",變數值"C:\Java\jdk1.8.0_05"(即JDK的安裝路徑)(2)編輯->變數名稱"Path",在原變數值的最後加上「; %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3)新建->變數名稱「CLASSPATH」,變數值「.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar ;%JAVA_HOME%\lib\tools.jar”
關鍵字
#是指在Java中被賦予了特殊意義的單字
總共有53個關鍵字,其中51個在用,還有2個目前沒有使用---const、goto---保留字
#用於定義資料類型的關鍵字
#interface | |||||||
#byte | short | ||||||
int#####long######## ###########float### | double |
char |
#boolean |
##void | enum | ||
#用於定義資料類型值的關鍵字 | |||||||
true | false | #null | # | ||||
#用於定義流程控制的關鍵字 | |||||||
if | else | switch | case | default | #while | ||
do | for | break | #continue | ## return||||
protected | #public | ## | |||||
#H一好的 | |||||||
# | #用於定義類別、函數、變數修飾符的關鍵字 |
abstract | #final | ##static | |||
synchronized | |||||||
##用來定義類別與類別之間關係的關鍵字 | extends | implements
|
|||||
# | ##|||||||
用於定義建立實例、判斷實例的關鍵字 | |||||||
this | |||||||
super | #instanceof | 用於例外處理的關鍵字 | |||||
catch | finally | #throw |
注意:所有的關鍵字都是小寫的!
在程式中自訂的名稱
1可以由字母、數字、_、$組成- --不建議使用$符號
2不能使用純數字、數字不能當開頭
3不能使用關鍵字
4Java是嚴格區分大小寫的語言
5為了提高程式的閱讀性,盡量的見名知義
支援中文命名,但是不推薦
class A{}
#class a{} 可以這樣寫,但是windows不允許,windows不區分大小寫
類別名稱/介面名稱
如果由多個單字組成,每個單字的縮寫 HelloWorld
變數名/方法名稱
如果由多個單字組成,第一個單字的縮寫,其餘單字的縮寫 playGame
套件名稱
如果由多個單字組成,所有字母全部小寫,中間用. 隔開
#常數名
如果由多個單字組成,所有字母全部大寫,中間用_隔開
在程式中用來解釋或說明程式的文字
//註解文字 單行註解
/*&*/ 多行註解
/**&*/ 文件註解---常用於註解類別、方法或常數
javadoc -d .\\document Demo.java---這個指令只能用來提取公共類別中文件註解的內容
以上是深度解析有關Java的工作原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!