개발자 쿠키

[Java] main(string[] args) 코드 뜯어보기 본문

java

[Java] main(string[] args) 코드 뜯어보기

개발자 쿠키 2022. 7. 22. 23:56

 

Java 프로그램의 진입점, main()

public class Hello {
	public static void main(String[] args) {
		System.out.println("Hello");
	}
}

args: String 타입만 받을 수 있는 배열 타입

String[] args = [”hello”, “world”]; 이렇게 저장됨

 

main(string[] args) 테스트 코드

public class First {
    public static void main(String[] args) {
        System.out.println("Command-line arguments:");
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}

First 클래스 출력 결과

# cmd
java Frist.java
java First hello world

# 출력
Command-line arguments:
hello
world

String[]로 인수를 받는 이유

명령행 인수가 일반적으로 문자열 형태로 전달되기 때문에 String 타입

2개 이상의 인수를 전달할 수 있어야 하기 때문에 배열타입 ([])

 

main()의 반환타입이 void인 이유?

Java 프로그램이 실행될 떄 main() 메서드가 진입접으로 사용되며, 이 메서드는 프로그램이 끝나면 종료됨

main 메서드를 통해 실행 시작. 이 메서드는 JVM(Java Virtual Machine)이 호출되며, 프로그램이 종료될 때까지 그 실행 흐름을 담당

 

다른 반환 타입을 허용한다면?

다른 반환 값이 들어오면 그 반환값에 대한 의미와 처리가 필요하게 되는데, 이는 불필요한 복잡성을 초래할 수 있음.

 

JVM, JRE, JDK


javac.exe 자바 컴파일러 - 자바 코드를 클래스or 목적 파일로 변환

java.exe 자바 인터프리터 - 클래스 파일을 기계어로 변환

java SE 라이브러리

JRE (Java Runtime Environment) 자바 실행 환경

JVM (Java Virtual Machine) 자바 가상 머신