Java main () 메서드 설명

1. 개요

모든 프로그램은 실행을 시작할 장소가 필요합니다. Java 프로그램에 대해 이야기하는 것이 주요 방법입니다. 우리는 코드 세션 동안 main 메서드 를 작성하는 데 너무 익숙해 져서 세부 사항에도 신경 쓰지 않습니다. 이 빠른 기사에서는이 방법을 분석하고 작성하는 다른 방법을 보여줄 것입니다.

2. 공통 서명

가장 일반적인 기본 메소드 템플릿은 다음과 같습니다.
public static void main(String[] args) { }

이것이 우리가 배운 방식이며 IDE가 코드를 자동 완성하는 방식입니다. 그러나 이것이이 방법이 가정 할 수있는 유일한 형태는 아닙니다. 우리가 사용할 수있는 몇 가지 유효한 변형이 있으며 모든 개발자가이 사실에주의를 기울이지 않습니다.

이러한 메서드 시그니처에 대해 알아보기 전에 공통 시그니처의 각 키워드의 의미를 검토해 보겠습니다.

  • 공개 – 액세스 수정 자 (전역 가시성을 의미 함)
  • static – 메서드는 클래스에서 직접 액세스 할 수 있습니다. 참조를 갖고이를 사용하기 위해 객체를 인스턴스화 할 필요가 없습니다.
  • void –이 메서드가 값을 반환하지 않음을 의미합니다.
  • main – 메소드 이름, Java 프로그램을 실행할 때 JVM이 찾는 식별자입니다.

관해서 인수의 파라미터, 상기 방법에 의해 획득 된 값을 나타낸다. 이것이 우리가 처음 시작할 때 프로그램에 인수를 전달하는 방법입니다.

매개 변수 argsString 배열입니다 . 다음 예에서 :

java CommonMainMethodSignature foo bar

CommonMainMethodSignature 라는 Java 프로그램을 실행하고 foobar 인수를 전달 합니다 . 이러한 값은 기본 메서드 내에서 args [0] ( foo 를 값으로 사용) 및 args [1] ( bar 를 값으로 사용) 로 액세스 할 수 있습니다 .

다음 예제에서는 테스트 또는 프로덕션 매개 변수를로드할지 여부를 결정하기 위해 args를 확인합니다.

public static void main(String[] args) { if (args.length > 0) { if (args[0].equals("test")) { // load test parameters } else if (args[0].equals("production")) { // load production parameters } } }

IDE가 프로그램에 인수를 전달할 수도 있다는 점을 항상 기억하는 것이 좋습니다.

3. main () 메서드 를 작성하는 다양한 방법

메인 메소드 를 작성하는 몇 가지 다른 방법을 확인해 봅시다 . 흔하지는 않지만 유효한 서명입니다.

이들 중 어느 것도 기본 메소드에 특정한 것은 없으며 모든 Java 메소드와 함께 사용할 수 있지만 기본 메소드 의 유효한 부분이기도합니다 .

대괄호는 일반 템플릿에서와 같이 String 근처에 배치 하거나 양쪽의 args 근처에 배치 할 수 있습니다 .

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

인수는 varargs로 나타낼 수 있습니다.

public static void main(String...args) { }

부동 소수점 값으로 작업 할 때 프로세서 간의 호환성을 위해 사용되는 main () 메서드에 대해 strictfp 를 추가 할 수도 있습니다 .

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

syncfinalmain 메소드에 대해 유효한 키워드 이지만 여기서는 효과가 없습니다.

반면에 final 은 배열이 수정되는 것을 방지하기 위해 args 에 적용될 수 있습니다 .

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

이 예제를 끝내기 위해 위의 모든 키워드를 사용 하여 main 메서드를 작성할 수도 있습니다 (물론 실제 응용 프로그램에서는 사용하지 않을 것입니다).

final static synchronized strictfp void main(final String[] args) { }

4. 둘 이상의 main () 메소드가 있음

응용 프로그램 내부에 둘 이상의 주요 메서드를 정의 할 수도 있습니다 .

실제로 일부 사람들은 개별 클래스의 유효성을 검사하기위한 기본 테스트 기술로이를 사용합니다 ( JUnit 과 같은 테스트 프레임 워크 가이 활동에 대해 더 많이 표시 되지만 ).

JVM이 애플리케이션의 진입 점으로 실행해야하는 주요 방법 을 지정 하기 위해 MANIFEST.MF 파일을 사용 합니다. 매니페스트 내에서 기본 클래스를 나타낼 수 있습니다.

Main-Class: mypackage.ClassWithMainMethod

이것은 실행 가능한 .jar 파일을 만들 때 주로 사용됩니다 . META-INF / MANIFEST.MF (UTF-8로 인코딩 됨)에 있는 매니페스트 파일을 통해 실행을 시작 하는 기본 메서드 가있는 클래스를 나타냅니다 .

5. 결론

이 튜토리얼 에서는 대부분의 개발자에게 그다지 일반적이지 않은 방법 을 포함하여 주요 방법 및 가정 할 수있는 다른 형식에 대한 세부 정보를 설명 했습니다.

것을 명심 우리가 보여준 그 예는 모든하지만 구문의 관점에서 유효하며, 그들은 단지 교육 목적을 제공 하고 대부분의 시간을 우리는 우리의 일을 할 수있는 공통의 서명이 붙어 있습니다.