무작정 개발.Vlog

[Java] main 함수

by 무작정 개발
반응형

이번에는 Java의 main 함수에 대해 간략히 정리할 것이다.

Java를 처음 공부하면 "public static void main(String [] args) {... } "를 보았을 것이다.

 

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

 

Java를 보다 깊게 이해하기 위해 다시 한번 복습하면서 글을 작성 중입니다.
기초적인 내용은 다루지 않을 예정입니다.

먼저 이 글을 읽기 전에 이전 글을 읽고 본다면 이해하기 쉽다.

[Java] Stack, Heap

 

[Java] Stack, Heap

Java를 보다 깊게 이해하기 위해 다시 한번 복습하면서 글을 작성 중입니다. 기초적인 내용은 다루지 않을 예정입니다. 이번 글에서는 이전 글 [Java] JVM와 바이트 코드에서 나온 스택(Stack), 힙(Heap)

backendcode.tistory.com

[Java] JVM와 바이트 코드

 

[Java] JVM와 바이트 코드

Java를 보다 깊게 이해하기 위해 다시 한번 복습하면서 글을 작성 중입니다. 기초적인 내용은 다루지 않을 예정입니다. 이번에는  [Java] JDK, JRE 이란? 에 이어서 JVM, 바이트 코드에 대해 정리할 것

backendcode.tistory.com


JVM 시작 시 main 함수만 찾는다.

 

public class Java {
    public static void main(String[] args) {
        System.out.println("main 함수 시작!");
    }
}

 

위에 Java라는 이름을 가진 클래스(Class) 안에 main 함수가 있다.

main 함수를 실행하면 하단의 결과가 나온다.

Java main 함수 실행
Java main 함수 실행

public class Java {
    public static void main2(String[] args) {
        System.out.println("main 함수 시작!");
    }
}

 

이번에는 main을 main2로 변경하여 실행하면 하단의 결과가 나온다.

main 함수를 못찾음
main 함수를 못찾음

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 프로그램을 실행할 때

                         인수를 줄 수 있는데 이 값이 이곳으로 들어오게 된다.

반응형

블로그의 정보

무작정 개발

무작정 개발

활동하기