[Java] main 함수
by 무작정 개발이번에는 Java의 main 함수에 대해 간략히 정리할 것이다.
Java를 처음 공부하면 "public static void main(String [] args) {... } "를 보았을 것이다.
public static void main(String[] args) {
// ....
}
Java를 보다 깊게 이해하기 위해 다시 한번 복습하면서 글을 작성 중입니다.
기초적인 내용은 다루지 않을 예정입니다.
먼저 이 글을 읽기 전에 이전 글을 읽고 본다면 이해하기 쉽다.
JVM 시작 시 main 함수만 찾는다.
public class Java {
public static void main(String[] args) {
System.out.println("main 함수 시작!");
}
}
위에 Java라는 이름을 가진 클래스(Class) 안에 main 함수가 있다.
main 함수를 실행하면 하단의 결과가 나온다.
public class Java {
public static void main2(String[] args) {
System.out.println("main 함수 시작!");
}
}
이번에는 main을 main2로 변경하여 실행하면 하단의 결과가 나온다.
main 함수 이름을 변경하니 main 함수를 찾을 수 없다는 결과가 나온다.
그리고 마지막으로 main 함수에는 무조건 static 키워드가 붙어야 JVM이 찾을 수 있다. static이 없다면 위와 같은 결과가 나온다.
main 함수가 실행되면 main 스택이 열린다.
public class Java {
public static void main(String[] args) {
System.out.println("main 함수 시작!");
}
}
" { } " 사이를 main 스택 영역이라 하고 실행을 하면 main 스택이 열리는 것을 확인할 수 있다.
그리고 main의 내부 코드가 순차적으로 실행된 뒤에 Java는 종료된다. 스택 안에 있는 영역이 순차적으로 열리는데
이를 "절차적 실행" 이라고 부르며 한 줄 한 줄 읽어서 실행한다.
[ main 함수 구성 ]
(1) public : 모든 클래스에서도 해당 변수나 메서드가 접근이 가능하다는 의미로 프로그램의 시작은 main이기 때문에
다른 곳에서 호출할 수 있도록 public 사용
(2) static : Java가 컴파일(compile)이 되는 순간 가장 빠르게 정의도어 별도의 객체 생성 없이 모든 객체와 공유 가능
(3) void : 별도의 return(반환값) 없이 메서드를 실행하고 끝냄
(4) main : 이 메서드가 main 메서드(main 함수)라는 것을 의미함'
(5) string[] args : 연속적인 문자열 데이터가 들어가는 저장 공간이다. 터미널에서 Java 프로그램을 실행할 때
인수를 줄 수 있는데 이 값이 이곳으로 들어오게 된다.
'Language > Java' 카테고리의 다른 글
[Java] if-else문 보다 switch문이 더 효율적인 이유 (2) | 2022.10.30 |
---|---|
[Java] 자료형(묵시적 형변환, 명시적 형변환) (2) | 2022.10.30 |
[Java] Call by Value, Call by Reference (1) | 2022.10.11 |
[Java] Stack, Heap (2) | 2022.10.11 |
[Java] Java는 compile 언어? interpreter 언어? (0) | 2022.10.10 |
블로그의 정보
무작정 개발
무작정 개발