日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java的加载与执行原理详解 Java程序从编写到最终运行经历了哪些过程

發布時間:2024/4/13 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的加载与执行原理详解 Java程序从编写到最终运行经历了哪些过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

Java程序從編寫到最終運行大概可概括為3個階段:編寫、編譯、運行階段。

一、編寫階段

  • 程序員在硬盤某個位置新建一個xxx.java文件
  • 使用記事本或者其他文本編輯器例如EditPlus打開xxx.java文件
  • 在xxx.java文件中編寫符合Java語法規則的源代碼
  • 保存源代碼
  • 二、編譯階段

  • 使用編譯器(javac.exe【JDK安裝后自帶】)將 xxx.java文件編譯為 xxx.class文件。如果 xxx.java文件中編寫的源代碼是符合語法規則的,編譯會通過并生成xxx.class字節碼文件;如果xxx.java文件中的源代碼不符合語法規則,則編譯不會通過,也不會生成xxx.class字節碼文件。一個java源文件是可以生成多個class文件的。(編譯實際上是檢查語法)
  • java命令格式:javac java源文件的路徑(路徑有絕對路徑和相對路徑之分)
  • xxx.java源文件經過編譯之后生成了A.class、B.class、C.class等文件,那么我們稱A是一個類,B是一個類,C是一個類。其中A、B、C是類的名字。
  • 三、運行階段(JRE起作用)

  • 使用JDK自帶的一個命令/工具:java.exe(負責運行的命令/工具)執行字節碼文件
  • java命令格式:java 類名
  • 執行java程序的步驟:
    <1>.先使用cd命令切換到Test.class文件所在的路徑。
    <2>.執行java 類名
    【java這個命令,后面跟的是“類名”,而絕對不能跟“文件路徑”,因為java命令后面跟的不是文件,是一個“類名”。所以必須先切換到class文件所在路徑,也是為了能讓類加載器能夠找到該class文件。】
  • 往下的步驟就全部交給JVM了,就不需要程序員進行干涉了。當執行java 類名回車以后,會經歷以下步驟:
    <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程序从编写到最终运行经历了哪些过程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。