Web/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) 자바 가상 머신