요즘 코딩인터뷰 영상을 보고 있는데 오늘은 public static void main()에 대해서 보았다.
아래의 내용을 보면 틀림없이 자바 공부 및 코딩 인터뷰 대비에 도움이 될거라 확신한다 ^^
public static void main(String args[]); 에 대한 설명
class test{
}
Java 컴파일 JAVAC text.java
1. 기본내용
클래스가 main() 를 포함하고 있는가, 아닌가 와 이 main()가 필요에 따라 선언되는가 아닌가는
컴파일러에 의해 확인되어지는게 아니라 런타임시 JVM이 이 것을 확인한다.
main을 안넣으면 RuntimeException : NoSuchMethodError.main이 발생
public static void main(String args[]) -> JVM이 확인
2. 각각을 사용하는 이유
public인 이유 : 어느곳으로부터든지 JVM에 의해서 call하기 위해
static인 이유 : 존재하는 객체 없이 JVM은 이 메쏘드와 main메쏘드를 콜 할 수 있다.
void인 이유 : JVM으로 어떤 것이든 return하지 않기 위해
main() 인 이유 : 이것은 JVM에 있는 네임임
String args[]인 이유 : 커맨드 라인 argument - 프로그램 실행시 매개변수를 보내서 실행할 수 있다는 뜻
3, public static void main(String args[]) 중 바꿀 수 없는 것
void를 int로 바꾸거나 main을 Main, String args[]를 String 등 몇개를 바꿔서 실행시키면
NoSuchMethodError.main 예외가 발생
# void는 리턴타입이 없다는 뜻이다. 메인 메쏘드는 프로그램 진입점이면서 종결점이기도 하다.
그러므로 리턴하는 값 자체가 불필요하고, 다른 타입으로 바꾸면 에러가 난다.
3. public static void main(String args[]) 중 바꿀 수 있는것
some change는 acceptable함
1) public, static 순서는 바뀌어도 상관없으나 리턴타입은 반드시 메쏘드 명 앞에 와야함
위의 문제 한번 풀어보시고 답은 아래에서 확인하세요 ^^
출처 :
블로그 : http://warmz.tistory.com/entry/public-static-void-mainString-args%EC%9D%98-%EC%9D%98%EB%AF%B8
'IT이야기 > JAVA' 카테고리의 다른 글
[DURGA 코딩인터뷰] public static void main() 상속/오버로딩/숨김/오버라이딩? (0) | 2016.04.24 |
---|---|
[자바의 정석] Chapter1. 자바 기본지식 (0) | 2016.04.24 |
맥 이클립스 사용시 자동완성 사용하기! (4) | 2016.04.21 |
[MAC/맥] 자바 파일 입출력 에러 해결하기 java.io.FileNotFoundException in eclipse (2) | 2016.04.15 |
Access Specifiers vs Access Modifiers (0) | 2016.03.20 |