>Java >java지도 시간 >Java의 `main` 메소드가 왜 정적입니까?

Java의 `main` 메소드가 왜 정적입니까?

DDD
DDD원래의
2024-12-15 11:43:10557검색

Why is Java's `main` Method Static?

Java 메인 메소드의 정적 특성 이해

public static void main(String[] args)으로 정의된 Java 메인 메소드의 시그니처 , 정적 특성이 왜 필수적인지에 대한 질문을 제기합니다. 이 기사에서는 이 규칙 뒤에 숨은 이유를 살펴보고 기본 메소드 설계의 진화를 검토합니다.

Java 기본 메소드에 static 수정자가 널리 사용되고 있음에도 불구하고 이 규칙이 본질적으로 필수는 아니라는 점에 유의하는 것이 중요합니다. 실제로 Java 21에서는 String[] 매개변수, 공개 접근성 및 심지어 static 수정자를 생략할 수 있는 대체 규칙을 도입했습니다. 그러나 static 수정자를 제외하면 매개 변수가 없는 비공개 생성자가 필요하며 명시적 생성자가 없으면 컴파일러가 기본적으로 생성자를 생성합니다.

기본 메서드 실행의 핵심에는 일련의 구성 요소가 있습니다. java.exe 또는 javaw.exe가 호출될 때 트리거되는 JNI(Java Native Interface) 호출. JNI는 Java 가상 머신과 C 및 C의 기본 환경 사이의 브리지 역할을 합니다.

java.exe는 기본적으로 명령줄 인수를 구문 분석하고, JVM 내에서 문자열 배열을 구성하고, main()이 포함된 클래스를 식별하고, JNI 호출을 활용하여 main() 메서드를 찾는 간단한 C 애플리케이션으로 작동합니다. 이후에 문자열 배열을 입력으로 사용하여 호출합니다.

main() 메서드의 이름과 인수를 받는 방식이 완전히 관습적이라는 점은 주목할 가치가 있습니다. 개발자는 다양한 동작을 허용하는 java.exe의 사용자 정의 버전을 만들 수 있습니다. 실제 애플리케이션에서는 아이콘, 프로세스 이름을 사용자 정의하거나 고유한 시나리오를 수용하기 위해 일반적으로 사용자 정의 실행 프로그램이 사용됩니다.

결론적으로, 기본 메소드의 정적 특성이 널리 사용되는 규칙이지만 꼭 필요한 것은 아닙니다. 이 디자인을 선택한 근본적인 이유는 역사적 배경과 실용적인 편의성에 있습니다. 그러나 Java 21의 새로운 규칙은 기본 메소드 설계에 유연성을 제공하여 특정 조건에서 정적 및 기타 수정자를 생략할 수 있습니다.

위 내용은 Java의 `main` 메소드가 왜 정적입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.