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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中main函数解析

發布時間:2023/12/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中main函数解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:xwdreamer 出處:http://www.cnblogs.com/xwdreamer 歡迎任何形式的轉載,但請務必注明出處。

從寫java至今,寫的最多的可能就是主函數

public static void main(String[] args) {}

但是以前一直都沒有問自己,為什么要這么寫,因為在c語言中就沒有這樣子的要求。其實這是一個不需要解釋的問題,因為java標準就是這么規定的,那么既然是java標準規定的,我們按照規定來執行就好了。不過,這并不是一個很好的學習態度,如果總是知其然而不知其所以然,總會對java有種隔膜的感覺。就是發現問題了,不去解決,不去了解為什么,心里總是會有牽絆。今天既然自己都這么問自己了,為什么java的主函數要按照這個格式來寫,那么我就得弄明白為什么。

在java中,main()方法是java應用程序的入口方法。java虛擬機通過main方法找到需要啟動的運行程序,并且檢查main函數所在類是否被java虛擬機裝載。如果沒有裝載,那么就裝載該類,并且裝載所有相關的其他類。因此程序在運行的時候,第一個執行的方法就是main()方法。通常情況下, 如果要運行一個類的方法,必須首先實例化出來這個類的一個對象,然后通過"對象名.方法名()"的方式來運行方法,但是因為main是程序的入口,這時候還沒有實例化對象,因此將main方法聲明為static的,這樣這個方法就可以直接通過“類名.方法名()”的方式來調用。

實例

 虛擬機通過調用某個指定類的方法main啟動,傳遞給main一個字符串數組參數,使指定的類被裝載,同時鏈接該類所使用的其它的類型,并且初始化它們。例如對于程序:

public class HelloApp {public static void main(String[] args) {System.out.println("Hello World!");for (int i = 0; i < args.length; i++) {System.out.println(args);}} }

 編譯后在命令行模式下鍵入: java HelloApp run virtual machine

  將通過調用HelloApp的方法main來啟動java虛擬機,傳遞給main一個包含三個字符串"run"、"virtual"、"machine"的數組?,F在我們略述虛擬機在執行HelloApp時可能采取的步驟。

  開始試圖執行類HelloApp的main方法,發現該類并沒有被裝載,也就是說虛擬機當前不包含該類的二進制代表,于是虛擬機使用ClassLoader試圖尋找這樣的二進制代表。如果這個進程失敗,則拋出一個異常。類被裝載后同時在main方法被調用之前,必須對類HelloApp與其它類型進行鏈接然后初始化。鏈接包含三個階段:檢驗,準備和解析。檢驗檢查被裝載的主類的符號和語義,準備則創建類或接口的靜態域以及把這些域初始化為標準的默認值,解析負責檢查主類對其它類或接口的符號引用,在這一步它是可選的。類的初始化是對類中聲明的靜態初始化函數和靜態域的初始化構造方法的執行。一個類在初始化之前它的父類必須被初始化。整個過程如下:

?

轉載于:https://www.cnblogs.com/lm3306/p/3274474.html

總結

以上是生活随笔為你收集整理的java中main函数解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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