這一篇我們來簡單理解一下JAVA的運行機制
大概可以分為三大部分
1.編寫程序
2.編譯程序
3.運行程序
1.編寫程序
編寫程序就是我們前面說的源代碼
這些源代碼都有特殊的語法
例如main函數
他是jdk中一個比較特殊的函數
他必須要使用特定的語法來編寫
(在前面加上 public 等關鍵字來修飾)
源代碼就像是程序的靈魂,
程序的實現是由源代碼來就決定的
就像一塊橡皮泥,
你想把它變成什么樣子完成由你來決定
2.編譯程序
為什么要編譯?
因為 JAVA和大多數語言一樣是一種高級語言
我們編寫好的代碼都被保存成為一個.java的文件
然而我們計算機並不認識(不能運行)這些文件
這就需要把我們編寫好的文件(源代碼)變成計算機可以運行的機器碼(二進制碼)
這個過程就叫做編譯
注意:編譯就是我們前面用到的 javac 命令
它可以將.java文件編譯成一個.class文件(字節碼)
並且class文件是一種與平台無關的文件
3.運行程序
上面說到把源代碼編譯成字節碼。
那么就到運行字節碼了
其實我們的JAVA語言有一個非常大的特點就是跨平台
用他們話說就是:一次編譯,到處運行
前面說過class文件是一種與平台無關的文件
它也不可直接運行
那我們怎么運行呢?
這就要講到一個東西jvm(JAVA虛擬機)
它可以將我們的class文件解釋成計算機可以運行的二進制
那我們的jvm是如何運行的呢
我們都知道所有程序只有在內存中才能運行
所以我們在運行JAVA文件的時候(java命令)
首先會在內存中創建一個jvm
然后把硬盤里的class文件加載進來
利用jvm去解釋這些class文件
最后運行程序。
PS:為什么說JAVA跨平台
1.因為編譯后的class文件只能被jvm所解釋
2.任何平台只要有jvm(JAVA運行環境)就可以解釋這個class文件
3.無論什么平台解釋同一個class文件最后的結果都是一樣的
也就是說我用Windows系統編譯好的class文件,拿來Android(前提要有環境)上運行也是一樣的
