>Java >java지도 시간 >Java에서 `main` 메소드가 `static`으로 선언된 이유는 무엇입니까?

Java에서 `main` 메소드가 `static`으로 선언된 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-22 04:20:09643검색

Why is the `main` method in Java declared as `static`?

Java Main 메서드: 왜 Static 선언을 사용하나요?

Java Main 메서드에는 특정 서명이 있습니다.

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

이것은 다음과 같은 질문을 제기합니다: 정적 수정자가 메인 코드에 필수적입니까? method?

관례, 필수 사항 아님

첫 인상과 달리 main 메소드에 대한 정적 선언은 언어적 필요성이 아니라 관례입니다. 놀라실 수도 있지만, 메소드 이름 "main()"과 String[] 매개변수도 단지 규칙일 뿐입니다.

대체 규칙

Java 21에서는 대체 규칙을 도입했습니다. String[] 매개변수, 공개 수정자, 심지어 정적 수정자까지 생략할 수 있습니다. static 수정자가 없으면 main() 호출 전에 클래스의 인스턴스가 생성되므로 해당 클래스에는 비공개가 아닌 매개변수가 없는 생성자가 있어야 합니다.

Java 네이티브 인터페이스 (JNI) 및 java.exe

java.exe(또는 Windows의 경우 javaw.exe)를 통해 Java 프로그램을 실행하려면 다음을 로드하는 JNI 호출이 필요합니다. JVM을 DLL로 사용합니다. JNI는 JVM과 C/C 환경 사이의 브리지 역할을 합니다.

java.exe: 간단한 C 애플리케이션

java.exe는 본질적으로 단순화된 C 애플리케이션입니다. 명령줄 인수를 구문 분석하고, JVM 내에 문자열 배열을 생성하고, JNI를 사용하여 지정된 클래스에서 main() 메서드를 찾고, 인수 배열을 사용하여 이를 호출합니다. 이 프로세스는 기본 함수 호출을 대신 사용한다는 점에서 Java 리플렉션과 유사합니다.

java.exe 사용자 정의

java.exe의 소스 코드를 수정할 수 있습니다( JDK)의 기능을 변경합니다. 이는 Java 기반 애플리케이션에서 실행기를 사용자 정의하고, 고유한 아이콘을 제공하고, 특정 시나리오(예: COM 핸들을 main()에 전달)를 처리하기 위해 사용됩니다.

편의성과 역사적 영향

main 메소드의 정적 특성은 편의성을 제공하고 C에서 채택한 명명 규칙과 일치합니다. IDE가 내에서 실행 가능한 클래스를 자동 감지할 수 있도록 해줍니다. 프로젝트. 대안이 존재하더라도 "정적" 기본 메소드는 Java 프로그래밍에서 보편적인 규칙으로 유지됩니다.

위 내용은 Java에서 `main` 메소드가 `static`으로 선언된 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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