首頁  >  文章  >  Java  >  深度解析有關Java的工作原理

深度解析有關Java的工作原理

巴扎黑
巴扎黑原創
2017-07-17 13:24:101535瀏覽

Java

是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虛擬機器不是跨平台的。

Java的技術結構

J2SE---標準版

J2EE---企業版

J2ME---行動版(早期有人用,現在幾乎不用了)

JDK/JRE/JVM

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檔案的檔案名稱和類別名稱對應

2.每一個類別編譯完成之後都會產生一個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---保留字

#用於定義資料類型的關鍵字

class#interface## return #用於定義存取權修飾符的關鍵字#privateprotected#public# # abstract#final  ## newtry

#byte

short
int

#####long######## ###########float###

double

char

#boolean

##void

enum

#用於定義資料類型值的關鍵字

true

false

#null

 

 

#用於定義流程控制的關鍵字

if

else

switch

case

default

#while

do

for

break

#continue

## 

#H一好的

#用於定義類別、函數、變數修飾符的關鍵字

##static
synchronized

 

##用來定義類別與類別之間關係的關鍵字

extends

implements

 

用於定義建立實例、判斷實例的關鍵字

this
super

#instanceof

 

 

用於例外處理的關鍵字

catch finally #throw
############################ #throws############ ###################用於套件的關鍵字########### ######package############import############# ############ ####### ###### ############ ###################其他修飾關鍵字###################################################################################################### #########native############strictfp############transient############volatile# ###########assert############ ################ ######o###################################################################################################################### # ###### ###### ###### ####### ####### ###########

注意:所有的關鍵字都是小寫的!

標識符

在程式中自訂的名稱

定義規則:5點

1可以由字母、數字、_、$組成- --不建議使用$符號

2不能使用純數字、數字不能當開頭

3不能使用關鍵字

4Java是嚴格區分大小寫的語言

5為了提高程式的閱讀性,盡量的見名知義

支援中文命名,但是不推薦

class A{}

#class a{} 可以這樣寫,但是windows不允許,windows不區分大小寫

駝峰命名法

類別名稱/介面名稱

如果由多個單字組成,每個單字的縮寫  HelloWorld

變數名/方法名稱

如果由多個單字組成,第一個單字的縮寫,其餘單字的縮寫  playGame

套件名稱

如果由多個單字組成,所有字母全部小寫,中間用. 隔開

#常數名

如果由多個單字組成,所有字母全部大寫,中間用_隔開

註解

在程式中用來解釋或說明程式的文字

格式

//註解文字   單行註解

   /*&*/  多行註解

  /**&*/  文件註解---常用於註解類別、方法或常數

javadoc -d .\\document Demo.java---這個指令只能用來提取公共類別中文件註解的內容

以上是深度解析有關Java的工作原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn