Java main 메소드가 무엇이지?

유나랑·2024년 9월 28일

코딩온 X SeSAC

목록 보기
27/30
post-thumbnail

자바 수업을 들으면서 항상 main 메소드를 만들고 시작한다. 근데 main 메소드가 뭐지?
계속 헷갈려서 한 번 정리해보았다.

main 메소드란?

가장 먼저 실행되는 메소드로 자바 프로그램의 "시작점"이다.

자바 프로그램이 시작될 때 JVM은 메인 클래스를 먼저 찾고 그 클래스의 main 메소드를 실행한다.

그렇다면 main 메소드의 코드를 분석해보자!

public class Main {
	// main 메소드
	public static void main(String[] args) {
    
    }
}

main 메소드 코드 분석

다음과 같이 5가지로 나눠볼 수 있다.

출처) https://velog.io/@gyoung9707/Java-main-%EB%A9%94%EC%84%9C%EB%93%9C

접근제어자 - public

  • 외부에서 접근할 수 있는 일종의 제약의 역할
  • 여기에서 public은 모든 클래스에서 접근이 가능하다는것을 의미
  • public을 사용한 이유: 모든 실행 프로그램의 기본이 되는 함수로 어디에서나 접근이 가능해야하기 때문이다.
    -> JVM이 접근!

정적 함수 - static

  • 클래스가 생성되는 순간에 메모리를 할당 받음
  • 즉, 객체를 생성하지 않아도 static 멤버에 접근이 가능
  • static를 사용한 이유: 객체가 생성되지 않은 상태에서도 메소드를 호출할 수 있어야하기 때문이다.

리턴타입 - void

  • 메소드가 끝날 때 리턴값이 없음을 의미
  • main 메소드는 프로그램의 실행을 시작하고 모든 동작을 마친 후 JVM으로 돌아가는데 이때 실행 후 반환해야 할 값이 없음.
  • void를 사용한 이유: JVM이 프로그램을 시작하고 끝낼 때 별도의 값을 기대하지않기 때문

메소드명 - main

  • 변경 불가능!
  • JVM가 진입점으로 인식하지 못해 오류 발생

매개변수 - String[] args

  • args 문자열을 배열로 사용하겠다는 의미
  • 프로그램을 실행할 때 특정한 정보를 입력 받아 그에 맞게 동작하게 하며 그것을 받는 공간
  • 즉, 커맨드 라인 인자를 받기 위한 배열
    참고) https://lordofkangs.tistory.com/12

마무리하며

main 메소드를 정리하며 접근제어자와 static 그리고 리턴타입에 대해서도 정리하게 되어 자바 수업을 더 이해할 수 있게 된 거같아 정리하길 잘했다라는 생각이 든다. 자바 수업도 열심히 들어서 백엔드와 소통이 더 잘 되는 프론트엔드가 되자!

출처 및 참고
1. [새싹 X 코딩온] 영등포 캠퍼스 6기 입문자도 가능한 웹 개발자 부트캠프 강의 교안
2. https://devparker.tistory.com/10
3. https://velog.io/@gyoung9707/Java-main-%EB%A9%94%EC%84%9C%EB%93%9C

0개의 댓글