java的注釋有哪幾種方式 主類是什么意思,為什么main方法是程序的入口,他是什么邏輯運(yùn)行的?
主類是什么意思,為什么main方法是程序的入口,他是什么邏輯運(yùn)行的?java中main方法是java程序執(zhí)行的入口,會(huì)啟動(dòng)一個(gè)主線程,啟動(dòng)一個(gè)main方法,就是創(chuàng)建一個(gè)jvm虛擬機(jī),所有的java代碼
主類是什么意思,為什么main方法是程序的入口,他是什么邏輯運(yùn)行的?
java中main方法是java程序執(zhí)行的入口,會(huì)啟動(dòng)一個(gè)主線程,啟動(dòng)一個(gè)main方法,就是創(chuàng)建一個(gè)jvm虛擬機(jī),所有的java代碼都是都在這個(gè)jvm運(yùn)行的。主類就是指帶有執(zhí)行入口main方法的類。java web程序,一般都是把你的web工程部署到web服務(wù)器,web服務(wù)器自己會(huì)有個(gè)主類,比如tomcat的org.apache.catalina.startup.Bootstrap,啟動(dòng)的時(shí)候就運(yùn)行這個(gè)主類的main方法
JAVA在主方法中Thread.sleep()會(huì)讓主方法休眠嗎?
在主方法中調(diào)用Thread.sleep()會(huì)讓主方法休眠的,我們知道在JAVA中應(yīng)用是通過(guò)main方法入口開(kāi)始啟動(dòng)的,所以main方法中的線程稱為主線程,如下代碼:
public class A {
public static void main(String[] args) {
System.out.println("我是主線程開(kāi)始")
Thread.sleep(5000)
System.out.println("我是主線程結(jié)束")
}
}
運(yùn)行上面的代碼時(shí),可以發(fā)現(xiàn)main快速的在控制臺(tái)上打印出"我是主線程開(kāi)始"信息,之后主線程被休眠了,需要在5秒之后才能打印出"我是主線程結(jié)束"信息。
怎樣理解JAVA的“構(gòu)造方法”和“主方法”?
構(gòu)造方法是一個(gè)與類同名的方法,對(duì)象的創(chuàng)建就是通過(guò)構(gòu)造方法完成的。每當(dāng)類實(shí)例化一個(gè)對(duì)象時(shí),類都會(huì)自動(dòng)調(diào)用構(gòu)造方法。
構(gòu)造方法的特點(diǎn)如下:構(gòu)造方法沒(méi)有返回值。構(gòu)造方法的名稱要與本類的名稱相同。
主方法是類的入口點(diǎn),它定義了程序從何處開(kāi)始;主方法提供對(duì)程序流向的控制,Java編譯器通過(guò)主方法來(lái)執(zhí)行程序。
在主方法的定義中可以看到主方法具有以下特性:
主方法也是靜態(tài)的,所以如要直接在主方法中調(diào)用其他方法,則該方法必須也是靜態(tài)的。主方法沒(méi)有返回值。
主方法的形參為數(shù)組。其中args[0]~args[n]分別代表程序的第一個(gè)參數(shù)到第n個(gè)參數(shù),可以使用args.length獲取參數(shù)的個(gè)數(shù)。
java編譯通過(guò),為什么運(yùn)行卻提示找不到或無(wú)法加載主類?
因?yàn)闆](méi)有代碼不能直接判斷出錯(cuò)誤原因,不過(guò)出現(xiàn)這種錯(cuò)誤一般是以下兩種原因造成的:
1.環(huán)境變量配置不當(dāng)。
查看環(huán)境變量ClassPath的值是否正確,如下圖:
變量值為:
.%JAVA_HOME%lib%JRE_HOME%lib
特別注意是,要用“.”這個(gè)配置,它表示當(dāng)前路徑,一定要有。
另外,保存環(huán)境變量以后,一定重新打開(kāi)一個(gè)cmd可執(zhí)行窗口,否則環(huán)境變量不會(huì)生效的。
2.代碼中帶有包名
比如下面這段代碼:
編譯以后運(yùn)行就會(huì)報(bào)錯(cuò),如下圖:
只要包名去掉就可以了,如下圖:
再重新編譯一下就可以運(yùn)行了,如下圖:
總結(jié)
以上兩個(gè)情況不知道哪個(gè)適合你,都可以試試吧,如果還是不行,可以在評(píng)論中繼續(xù)問(wèn)我。