Java的加载与执行原理详解 Java程序从编写到最终运行经历了哪些过程
生活随笔
收集整理的這篇文章主要介紹了
Java的加载与执行原理详解 Java程序从编写到最终运行经历了哪些过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
Java程序從編寫到最終運行大概可概括為3個階段:編寫、編譯、運行階段。
一、編寫階段
二、編譯階段
三、運行階段(JRE起作用)
<1>.先使用cd命令切換到Test.class文件所在的路徑。
<2>.執行java 類名
【java這個命令,后面跟的是“類名”,而絕對不能跟“文件路徑”,因為java命令后面跟的不是文件,是一個“類名”。所以必須先切換到class文件所在路徑,也是為了能讓類加載器能夠找到該class文件。】
<1>. 會先啟動JVM(java虛擬機)
<2>. JVM啟動之后,JVM會去啟動“類加載器classloader”
類加載器的作用:加載類的。本質上類加載器負責去硬盤上找“類”對應的“字節碼”文件。
假設是“java HelloWorld”,那么類加載器會去硬盤上搜索:HelloWorld.class文件。
假設是“java Test”,那么類加載器會去硬盤上搜索:Test.class文件。
<3>. 類加載器如果在硬盤上找不到對應的字節碼文件,會報錯:找不到或無法加載主類
類加載器如果在硬盤上找到了對應的字節碼文件,類加載器會將該字節碼
文件裝載到JVM當中,JVM啟動“解釋器”將字節碼解釋為“101010000…”這種
二進制碼,操作系統執行二進制碼和硬件交互。
默認情況下,類加載器去硬盤上找“字節碼”文件的時候,默認情況下類加載器(classloader)會從當前路徑下找。因此在運行時要先先使用cd命令切換到Test.class文件所在的路徑。也可以設置一個環境變量classpath給類加載器指定一個路徑,讓類加載器去指定的路徑下加載字節碼文件。
JVM會通過類加載器將字節碼文件裝載進去,然后JVM對字節碼進行解釋,將字節碼解釋為機器指令(二進制碼)。JVM會將生成的二進制碼交給OS操作系統,操作系統會執行二進制碼和硬件進行交互。
總結
Java程序從編寫到編譯再到運行是一次完整的加載與執行過程。程序員寫的源代碼為xxx.java文件,源代碼是無法直接被JVM識別。Java程序員編寫的代碼必須經過編譯,將源代碼編譯為字節碼,JVM能夠識別字節碼文件并將其解釋并執行。
.java文件就是源文件,這個文件中編寫源代碼
.class文件為編譯后的字節碼文件。
javac命令負責編譯
java命令負責運行
java程序的編譯和運行過程可以在不同的操作系統上完成。因為java是跨平臺的。
java源代碼一旦編譯之后,如果將源代碼刪除,只保留字節碼文件也是可以執行的,因為參與運行的是字節碼。但是最好不要把源程序刪除,以防后期需要進行修改。
字節碼文件不是二進制文件,它只是接近于二進制的字節碼,需要由JVM解釋為二進制然后被執行。
總結
以上是生活随笔為你收集整理的Java的加载与执行原理详解 Java程序从编写到最终运行经历了哪些过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一次性掌握JDK、JRE、JVM的概念以
- 下一篇: Java语言中的注释有哪些