본문 바로가기
Java

[Java] public static void main(String args[]) 분석

by byeongoo 2020. 3. 24.

오늘은 자바 코딩을 할때 무의식적으로 치고 있는 public static void main(String args[]) 에 대해서 분석글을 작성해 봅니다. 자바를 배우면 가장 먼저 main함수를 작성하는데 그 의미에 대해서 제대로 파악을 하는게 좋을거 같습니다. 우선 각각의 키워드들을 분석해보겠습니다.

1. main

Java는 어플리케이션이 실행되면 제일 먼저 메인(main)메소드를 실행합니다. Java와의 약속이라고 생각하시면 됩니다. 

2. public 

자바에는 4개의 접근 제어자가 있고 public은 그 중 하나입니다. public 접근 제어자는 어느 곳에서든 해당 객체를 참조할 수 있다는 의미입니다. 4가지 접근 제어자중 제약이 가장 약합니다. main 메소드를 public으로 지정하는 이유는 JVM이 main 함수가 어디에 있건 접근 가능해야 하기 때문입니다.

3. static

static으로 class or 함수를 선언하면 해당 객체는 프로그램이 시작하면 따로 인스턴스화 하지 않아도 프로그램의 시작과 동시에 메모리에 올라갑니다. 프로그램이 종료되기전까지는 메모리에 살아남아 계속 참조를 할 수 있습니다. 이렇게 정적으로 선언하는 이유는 객체를 생성해주지 않아도 자동으로 실행되어 작업을 수행해야하는 부분이기 때문에 static으로 선언합니다.

4. String[] args

String[] args는 문자열 배열을 의미합니다. 즉, 매개변수로 문자열 배열을 줄 수 있다는 것을 의미합니다. args는 변수명입니다. 자바 커맨드라인에서 실행할 때 매개변수를 지원해주기 위해서 기본으로 사용합니다. 다음 예제를 보면 쉽게 이해할 수 있습니다.

public class SampleProject {

    public static void main(String[] args) {

		for( int i=0; i < args.length; i++ ){
			System.out.println(args[i]);
		}
		
	}
}
java SampleProject 문자열1 문자열2 문자열3

[실행결과]
 문자열1
 문자열2
 문자열3

5. void

main 메소드는 어플리케이션의 시작점이자 끝나는점입니다. 어차피 프로그램이 종료되는데 그 시점에 return 값은 의미가 없기 때문입니다.

 

이상으로 자바 메인 메소드 선언 부분에 대해서 알아보았습니다. 잘못된 내용은 댓글로 남겨주세요!

'Java' 카테고리의 다른 글

[Java] 제네릭(Generic)  (0) 2020.03.31
[Java] HashMap  (0) 2020.03.26
WAR, JAR , EAR 파일 이란  (2) 2020.01.04
[Java] 문자열 split 후 List에 넣기  (0) 2019.11.08
[Java] compareTo() 문자열 비교 함수  (0) 2019.11.05