主java
1. java中主方法的注意事項
在Java中,main()方法是Java應用程序的入口方法,也就是說,程序在運行的時候,第一個執行的方法就是main()方法,這個方法和其他的方法有很大的不同,比如方法的名字必須是main,方法必須是public static void 類型的,方法必須接收一個字元串數組的參數等等。
在看Java中的main()方法之前,先看一個最簡單的Java應用程序HelloWorld,我將通過這個例子說明Java類中main()方法的奧秘,程序的代碼如下:
/**
* Java中的main()方法詳解
*/
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
一、先說類:
HelloWorld 類中有main()方法,說明這是個java應用程序,通過JVM直接啟動運行的程序。
既然是類,java允許類不加public關鍵字約束,當然類的定義只能限制為public或者無限制關鍵字(默認的)。
二、再說main()方法
這個main()方法的聲明為:public static void main(String args[])。必須這么定義,這是Java的規范。
為什麼要這么定義,和JVM的運行有關系。
當一個類中有main()方法,執行命令「java 類名」則會啟動虛擬機執行該類中的main方法。
由於JVM在運行這個Java應用程序的時候,首先會調用main方法,調用時不實例化這個類的對象,而是通過類名直接調用因此需要是限制為public static。
對於java中的main方法,jvm有限制,不能有返回值,因此返回值類型為void。
main方法中還有一個輸入參數,類型為String[],這個也是java的規范,main()方法中必須有一個入參,類細必須String[],至於字元串數組的名字,這個是可以自己設定的,根據習慣,這個字元串數組的名字一般和sun java規范範例中mian參數名保持一致,取名為args。
因此,main()方法定義必須是:「public static void main(String 字元串數組參數名[])」。
三、main()方法中可以throw Exception
因此main()方法中可以拋出異常,main()方法上也可以聲明拋出異常。
比如,下面這個寫法是正確的:
public class TestMain {
public static void main(String[] args) throws Exception {
System.out.println("哈哈哈哈哈");
throw new Exception("");
}
}
運行結果:
哈哈哈哈哈
Exception in thread "main" java.lang.Exception:
at maintest.TestMain.main(TestMain.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Process finished with exit code 1
四、main()方法中字元串參數數組作用
main()方法中字元串參數數組作用是接收命令行輸入參數的,命令行的參數之間用空格隔開。
下面給出一個例子,看看如何初始化和使用這個數組的。
/**
* 列印main方法中的輸入參數
*/
public class TestMain {
public static void main(String args[]){
System.out.println("列印main方法中的輸入參數!");
for(int i=0;i<args.length;i++){ System.out.println(args[i]);
}
}
}
執行方法和運行結果
D:/Study/basetest/src>javac TestMain.java
D:/Study/basetest/src>java TestMain 1 2 3
列印main方法中的輸入參數!
1
2
3
五、給出HelloWorld的另外一個版本
/**
* 變態版的HelloWorld.呵呵
*/
public class HelloWorld2 {
static {
System.out.println("Hello Wordld!");
}
public static void main(String args[]){
System.exit(0);
}
}
這個main()方法執行的內容就一句"System.exit(0);" ,目的是讓程序正常結束。那「HelloWorld!」是從哪裡列印的,秘密就是在static列印的,因為static代碼塊的內容會在main調用前調用。
總結:
main方法作為一個特殊的規范,與普通的方法有很大區別,限制很多,理解其原理需要學習JVM相關知識。是Java中學習中大障礙。這是我對main原理和使用的總結,歡迎各位在此討論。
2. java 中關於主方法的寫法
java中主方法需要注意的是:
1、主方法是靜態方法,所以如果要在主方法中調用其回他方法,則該方法也必須答要是靜態的;
2、主方法是沒有返回值的;
3、主方法的參數為數組args,其個數為args.length;
4、一個程序要運行必須有主方法的存在。
5、主方法是類的入口點,它定義了程序從何處開始,主方法提供對程序流向的控制,Java編譯器通過主方法來開始執行程序。其一般定義方法如下:
public static void main(String[] args){
//方法體
}
3. Java主程是什麼職位
最頂層是項目負責人,接下來項目會落實到PM(項目經理PM)
項目經理將任務分版成若干個子權項目,每個項目由一個PL(項目組長)負責。
在每個子項目中,由SE(系統工程師)帶領PG(程序員)共同完成。
其中,PM和PL一般為具有資深項目管理經驗、長期開發實踐和良好交流能力的高級技術人才。
SE需要具有獨立的設計和提案能力,具有長期開發實踐經驗和交流能力。
一般又可分為三種類型:
第一種,純技術型SE,這種人往往會成為技術專家;
第二種,技術兼管理型SE,將來有希望成為PL、PM,甚至更高級的職位。
Bridge型SE(BSE),通常是負責與客戶的溝通,以及團隊內的協調工作。PG,也就是程序員,這類人才在企業中所佔數量最多,通常佔到了整個項目員工數的70%,也是企業中最緊缺的一類職位,一般為具有專業知識的軟體工程技術人員。
通常,理工科的大學畢業生通過短期培訓後,都可以勝任這個職位。
4. java的主類是什麼
類的名字和文件名一致,並且包含main函數的類,叫做主類。
以下是詳細解釋和案例:
先區分兩個概念,
類的名字:在代碼中定義類的時候,起的名字。比如:public class Demo{ },這里定義的Demo就是類的名字。
文件名:.java文件的名字。比如:Demo.java的前綴Demo就是文件名。
一個文件至少包含一個類,則這個類的名字必須要和文件名一致。如果有多個類,則必須有一個類名和文件名一致。
樓上有人回答說,主類是帶有main函數的類,是不對的。運行這段代碼:
這個文件的名字是Demo.java,包含兩個類:Demo 和 Demo2
classDemo{
publicstaticvoidmain(String[]args){
System.out.println("123");
}
}
classDemo2{
publicstaticvoidmain(String[]args){
System.out.println("abc");
}
}
//運行結果是:123
大家發現了,Demo和Demo2都有main方法,但是虛擬機Jvm執行Demo里的main函數,而不執行Demo2里的main函數,所以Demo是主類。
樓上還有人回答說「主類就是程序裡面定義了一個public class,並且裡面有main函數或者程序執行的入口。」也是不對的。比如上一段代碼中,沒有public修飾。主類不一定要被public修飾。
關於類的public修飾符,補充一下,供大家學習:
1.如果文件中只有一個類,文件名必須與類名一致,有沒有public修飾都可以;
2.一個Java文件中最多隻能有一個public類;
3.如果文件中不止一個類,而且有public類,文件名必須與public類名一致;
4.如果文件中不止一個類,而且沒有public類,文件名可與任一類名一致。
5. java 主類有什麼用
啥是主類啊?!
本來就沒有所謂的主類、非主類之說。我們通常把含有main函數的類稱之為主類。也就是先有main才有主類,別搞顛倒了。
換句話說,主類和其他類本質上沒有任何區別。就好比會議室和卧室有什麼區別?放了會議桌就是會議室,放個床那就叫卧室。
另外,一個項目(也就是編好的jar包)可以有主類,也可以沒有。有的話可以有很多,具體使用哪個進入,那要看使用者。
再說一下main,main和普通函數本質上沒區別,可以像普通函數一樣調用(你試過沒?)。唯一的區別就是,Java虛擬機有一個約定,一旦啟動時給了一個類,而且這個類包含一個形如public static main(字元串數組)的方法,那就執行這個方法。
當然,深究起來這裡面還有很多有意思的地方,比如main為什麼是靜態的?你自己考慮去。
6. java中什麼是主調方法
實例化一個類的對象,然後用對象調用方法。
例如代碼:
public class Test(){
public void say(){
System.out.println("hello");
}
public static void see(){
System.out.println("see");
}
public static void main(String[] args) {
Test test = new Test();
test.say(); // 第一種情況回
test.see();
Test.see(); // 第二種情況
}
}
上述代碼有兩答種調用方法的情況:
1,實例化一個類(new一個對象),用這個類的對象去調用類裡面的方法。
2,當方法用了static修飾時,可以不用new類的對象,可以直接類名.方法名調用。
7. JAVA主方法。
是的,因為主方法是JVM執行這個類的入口,必須是Public的,而JVM執行這個類專的時候會首先執行main方法,屬是不實例化這個類的,所以必須是static靜態的,至於返回值void和入參,則是Java語言的規范,必須是這樣的。
8. Java主函數
主函數:
一般而言,編寫一個能運行在操作系統上的程序,都需要一個主函數。主函數意味著建立一個獨立進程,且該進程成為了程序的入口,對其它各函數(在某些OOP語言里稱作方法,比如Java)進行調用,當然其它被調用函數也可以再去調用更多函數.......這樣整個程序的運行軌跡就像一種棧,有時我們稱之為調用棧。主函數既是程序的入口,又是程序的出口,通常我們還可以指定一個exit code再退出,以表明程序最後的結果是什麼樣的。
作用:
由於主函數肩負著入口和出口的重任,所以最好不要把太多的細節方面的邏輯直接放在主函數內,這樣不利於維護和擴展。主函數應該盡量簡潔,具體的實現細節應該封裝到被調用的子函數裡面去。
程序示例:
C語言
按照C99標準的規定,C語言的main函數如下:
int main(
void){/*網路示例代碼*/}//整數類型主函數(無類型)
或者
int main(intargc,
char*argv[]){/*網路示例代碼*/}//整數類型主函數(整數類型統計參數個數,字元類型*
數組指針至字元[])
C++語言
按照C++98標准和C++11標準的規定,C++語言的主函數如下:
int main(){/*網路示例代碼*/}//整數類型主函數
或者
int main(intargc,
char*argv[]){/*網路示例代碼*/}//整數類型主函數(整數類型統計參數個數,字元類型*
數組指針至字元[])
Java語言
Java語言規定主函數必須是這樣的:
staticvoidMain(String[]args){//靜態無類型主函數(字元串[]args)
//網路示例代碼......
}
這樣就可以傳一些參數給main函數。
C#語言
C#倡導帕斯卡命名法,Main規定必須是大寫:
staticvoidMain(String[]args){//靜態無類型主函數(字元串[]args)
//網路示例代碼......
}
還有一種寫法是:
staticvoidMain(){//靜態無類型主函數
//網路示例代碼......
}
9. java中主方法具體是什麼,可以干什麼,有什麼作用,
1)Java中主方法就是main方法,是程序運行的入口,程序開始的起始方法,主方法是靜態方法如果在主方法中調用其他方法其他方法也必須是靜態方法
2)主方法是沒有返回值的
3)主方法的參數是args,其個數是args.length
4) 一個程序要運行必須有主方法的存在
5)主方法是類的入口點,它定義了程序從何處開始,主方法提供對程序流向的控制,Java編譯器通過主方法開始執行程序。
10. java主方法如何調用方法
實例化一個類的對象,然後用對象調用方法。
例如代碼:
public class Test(){
public void say(){
System.out.println("hello");
}
public static void see(){
System.out.println("see");
}
public static void main(String[] args) {
Test test = new Test();
test.say(); // 第一種情況
test.see();
Test.see(); // 第二種情況
}
}
上述回代碼有兩種調用方法答的情況:
1,實例化一個類(new一個對象),用這個類的對象去調用類裡面的方法。
2,當方法用了static修飾時,可以不用new類的對象,可以直接類名.方法名調用。