자바의 main() 메소드 어디에서 출발하는 지점인지 JVM Java 프로그램 실행을 시작합니다. 프로그램에 기본 메소드가 없으면 JVM은 코드를 실행하지 않습니다. 따라서 Java의 가장 중요한 메소드 중 하나이며 이에 대한 올바른 이해가 매우 중요합니다.
Java 컴파일러 또는 JVM은 Java 프로그램 실행을 시작할 때 기본 메소드를 찾습니다. JVM이 해당 메소드를 진입점으로 인식하려면 기본 메소드의 서명이 특정 방식으로 작성되어야 합니다. 메소드의 서명을 변경하면 프로그램은 컴파일되지만 실행되지는 않습니다.
자바 프로그램의 실행, java.exe 호출됩니다. 그러면 Java.exe는 Java 기본 인터페이스 또는 JNI를 호출하고 JVM을 로드합니다. java.exe는 명령줄을 구문 분석하고 새 문자열 배열을 생성하며 main() 메서드를 호출합니다. 기본적으로 기본 스레드는 항상 데몬이 아닌 스레드입니다.
main() 메소드의 구문
main() 메소드의 구문은 항상 다음과 같이 작성됩니다.
xvideoservicethief 우분투 14.04 다운로드

예
main() 메서드를 정의하는 데 가장 일반적인 방법이 아래 예에 나와 있습니다.
자바 // Java Program to demonstrate the // syntax of the main() function class techcodeview.com { public static void main(String[] args) { System.out.println('I am a Geek'); } }> 산출
I am a Geek>
그 안에 있는 모든 단어는 공개 정적 무효 메인 문은 아래에 설명된 JVM에서 의미를 갖습니다.
1. 공개
이것은 접근 수정자 , 메소드에 액세스할 수 있는 위치와 사용자를 지정합니다. main() 메소드를 공개로 설정하면 전역적으로 사용할 수 있습니다. 현재 클래스에 없기 때문에 JVM이 클래스 외부에서 호출할 수 있도록 공개됩니다.
기본 메소드가 공개가 아닌 경우 액세스가 제한됩니다.
예:
자바 // Java Program to demonstrate the // use of any other access modifier // other than public class techcodeview.com { private static void main(String[] args) { System.out.println('I am a Geek'); } }>
산출
Error: Main method not found in class, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application>
2. 정적
이것은 예어 이는 메소드와 연관되어 메소드를 만드는 것입니다. 클래스 관련 메소드 . 그만큼 기본() 메소드는 JVM이 없이 메소드를 호출할 수 있도록 정적입니다. 클래스 인스턴스화 . 이는 또한 호출을 위해서만 선언된 객체에 의해 사용되었을 불필요한 메모리 낭비를 줄여줍니다. 기본() JVM의 메소드입니다.
main이 정적이 아닌 Java 코드를 실행하려고 하면 오류가 발생합니다.
예:
자바 // Java Program to demonstrate the // error occurred when we dont use the // static keyword in the main() method class techcodeview.com { public void main(String[] args) { System.out.println('I am a Geek'); } }>
산출
제어 구조 파이썬
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>
3. 무효
이것은 예어 그리고 익숙하다 메서드가 아무것도 반환하지 않도록 지정 . 다음과 같이 기본() 메소드는 아무것도 반환하지 않으며 반환 유형은 다음과 같습니다. 무효의 . 하자마자 기본() 메소드가 종료되면 Java 프로그램도 종료됩니다. 그러므로 다시 돌아온다는 것은 의미가 없습니다. 기본() JVM은 반환 값으로 아무 것도 할 수 없기 때문에 메소드입니다.
main 메소드가 void가 아니면 오류가 발생합니다.
예:
자바 // Java Program to demonstrate the // error occurred when we dont use the // void return type in the main() method class techcodeview.com { public static int main(String[] args) { System.out.println('I am a Geek'); return 1; } }>
산출
Error: Main method must return a value of type void in class Main, please define the main method as: public static void main(String[] args)>
4. 메인
그것은 Java 기본 메소드의 이름 . 그것은 식별자 JVM이 찾는 것 자바 프로그램의 시작점 . 키워드가 아닙니다.
main 메소드를 시작하는 동안 이름을 변경하면 오류가 발생합니다.
예:
자바 // Java Program to demonstrate the // error occurred when we name the // main() method as newmain. class techcodeview.com { public static void newmain(String[] args) { System.out.println('I am a Geek'); } }>
산출
Error: Main method not found in class, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application>
5. 문자열[] 인수
그것 Java 명령줄을 저장합니다. 인수 유형의 배열입니다. java.lang.문자열 수업. 여기서 String 배열의 이름은 다음과 같습니다. 인수 그러나 이는 고정되어 있지 않으며 사용자는 그 대신 어떤 이름이든 사용할 수 있습니다.
예: String[]의 실행 과정
자바 // Java Program to demonstrate // the working of String[] args // in the main() method class techcodeview.com { // Commamd-Line Code ->// javac techcodeview.com.java // java techcodeview.com 1 2 3 public static void main(String[] args) { for (String elem : args) System.out.println(elem); } }>
산출
해시맵
1 2 3>
위에서 언급한 main 서명 외에도 다음을 사용할 수 있습니다. 공개 정적 무효 메인(문자열 인수[]) 또는 공개 정적 무효 메인(문자열… 인수) Java에서 main 함수를 호출합니다. 형식 매개변수가 문자열 배열의 매개변수와 일치하면 기본 메소드가 호출됩니다.
메모: 주요 메소드는 Java의 Cumpulosory입니다.
Java에서 main() 메소드 오버로드
Java에서는 main() 메서드 오버로드가 가능합니다. 즉, 프로그램에서 main() 메서드를 원하는 만큼 만들 수 있습니다.
Java에서 main() 메소드를 오버로드하려면 다른 매개변수를 사용하여 main() 메소드를 작성해야 합니다.
예:
자바 public class Main { public static void main(String[] args) { if (args.length == 0) { System.out.println('Running main() with no arguments'); } else if (args.length == 1) { try { int value = Integer.parseInt(args[0]); main(value); } catch (NumberFormatException e) { main(args[0]); } } else { // Handle more arguments as needed } } public static void main(int value) { System.out.println('Running main() with integer argument: ' + value); } public static void main(String message) { System.out.println('Running main() with string argument: ' + message); } }> 산출:
Running main() with no arguments>
결론
Java main() 메소드는 Java 프로그램의 시작점입니다. JVM에 의해 실행되는 본체이며, main() 메소드 없이는 Java 프로그램을 실행할 수 없습니다.
더 알아보기: 자바 튜토리얼
Java main() 메소드 - FAQ
주요 메소드가 int가 될 수 있나요? 그렇지 않다면 왜 그렇습니까?
아니요, Java 기본 메소드는 int일 수 없습니다. 여기에는 두 가지 주요 이유가 있습니다.
- JVM이 찾는다 공개 정적 무효 메인(문자열[] 인수) 프로그램 실행을 시작할 때 입력되는 표준 서명입니다. int 서명을 사용하면 프로그램 실행 중에 혼란과 호환성 문제가 발생할 수 있습니다.
- void 서명이 있다는 것은 메인 메소드가 아무 것도 반환하지 않는다는 것을 의미하지만, int 서명을 사용한다는 것은 메인 함수가 정수를 반환해야 한다는 것을 의미하며 이는 JVM에 유용하지 않습니다.
main 메소드 없이 Java 프로그램을 실행할 수 있나요?
아니요, 보낸 사람 JDK7 주요 방법은 필수입니다. 컴파일러는 먼저 main()이 있는지 여부를 확인합니다. 프로그램에 메인 메소드가 포함되어 있지 않으면 클래스에 메인 메소드가 없다는 오류가 발생합니다.
해당 주제에 대한 자세한 내용을 확인하려면 다음을 참조하세요. Java에서는 main 메소드가 필수인가요? 기사.
String[] 인수 없이 main() 메서드를 선언할 수 있나요?
예, String[] 인수 없이 main() 메서드를 선언할 수 있습니다. 아래 예제처럼 드라이버 클래스 내에서 직접 메인 메소드를 실행하려고 하면 오류 메시지가 생성됩니다.
다음은 String args[] 없이 프로그램을 작성하는 올바른 방법입니다.
자바 튜플자바import java.io.*; import javafx.application.Application; abstract class GFG extends javafx.application.Application { // static block static { System.out.println('Hello, world!'); System.exit(0); } }>산출
Hello, world!>
Java에서 왜 main void가 있습니까?
main 메소드는 Java에서 프로그램 실행의 시작점 역할을 합니다. JVM은 기본 값을 수신하거나 처리하는 메커니즘이 없기 때문에 기본에서 반환 값을 기대하지 않습니다.