Auxiliary Memory
  • Auxiliary Memory
  • Recent Changes
  • Disclaimer
  • general
    • Homelab
      • Planning
      • Configuring RPi
      • Dockerize Unifi Controller
      • Moving Unifi Controller to Bare Metal RPi
    • Lifehack
      • Coding on iPad
      • Faster internet with Cloudflare WARP
  • lifelog
    • Links
    • Movies
    • Books
      • Reading Queue
    • Public Memos
      • 2020 Memo
    • Yearly Records
      • Records of 2020
      • Records of 2019
  • books
    • The Rust Programming Language
    • Lambda Calculus
    • SICP
    • Introduction To Algorithms
      • 1.1. 알고리즘의 역할
      • 1.2. 시작하기
    • Linux System Programming 2/E
      • 1. 핵심 개념 소개
  • Programming
    • Git
    • When to refactoring?
    • Microservices
    • Functional Programming
      • ADT
      • Functor and Monads
    • OS
      • CPU Modes
    • Debugging
      • objdump
    • DevOps
      • How our infrastructure organized
      • Optimize Dockerfile
    • Spring Framework
    • Web
      • OAuth
        • Sign in with Apple
    • SQL
      • Prepared Statement
    • Programming Languages
      • TypeScript
      • Python
        • GIL
      • Rust
      • F#
        • Dos & Don'ts
      • Go
      • JVM
        • JVM memory structure
        • JVM GC
        • Kotilin
        • Java
          • Why main method should be static
  • My Environment
    • My Macbook
    • My Keyboards
    • My PyCharm
    • My CLI
      • iTerm2
      • Dotfiles
        • Refactoring .zshrc
      • Useful Commands
Powered by GitBook
On this page
  • 요약
  • p.s. 그런데 왜 public 이지?
  • 참고문헌

Was this helpful?

  1. Programming
  2. Programming Languages
  3. JVM
  4. Java

Why main method should be static

PreviousJavaNextMy Macbook

Last updated 4 years ago

Was this helpful?

요약

만약 메인 메소드가 스태틱이 아니라면 해당 메소드를 포함하고 있는 클래스를 인스턴스화 해야 하는데 생성자에 인자를 받을 경우에는 JVM이 어떻게 해야 할 지를 모르기 때문에 인스턴스화 필요 없이 자동으로 메모리에 올라가게 되는 스태틱으로 선언해야만 JVM이 시작점을 찾을 수 있다.

p.s. 그런데 왜 public 이지?

비슷한 이유로 퍼블릭 접근 제어자를 붙이지 않으면 메인 메소드가 선언된 클래스 외부에서 메인 메소드를 실행할 수 없기 때문에 public을 붙여 외부에서 메인 메소드를 실행할 수 있도록 해야 한다.

참고문헌

https://stackoverflow.com/a/146662