일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Selector
- 청주
- 안드로이드 AVD
- Java
- Intent
- 생명주기
- 인텐트
- 제이쿼리
- 안드로이드
- androidstudio
- Android
- Activity
- java 8
- TinyMCE
- jQuery
- Resources
- 프로그래밍
- Spring
- 게시판
- 에디터
- 글쓰기
- 아이콘
- 자바
- 회원가입
- 주님의교회
- 웹개발
- 영성
- JavaScript
- #청주주님의교회
- CSS
- Today
- Total
공부하는 블로그
Main메소드에 static을 사용하는 이유? / static의 정의 본문
public - 접근 제한자 (public 은 어디서든 사용가능한 제한이 없음)
static - 메모리에서 제일 먼저 실행되는 static
void - 리턴 (반환)값을 의미합니다. main 메소드는 반환해야하는 값이 없습니다.
리턴값이 없을 때는 void 를 사용합니다.
main - 메소드입니다. Java가 실행되면 가장 먼저 실행되는 메소드가 메인 메소드입니다.
String[] - String형의 배열을 의미합니다.
args - 배열의 이름을 의미합니다.
main에 static을 사용하는 이유
static은 java프로그램이 실행하기 전에 static 함수나 static 변수를 첫번째로 메모리에 올려 프로그램을 실행시킵니다.
프로그램이 종료될 때 까지 사라지지않음
main 함수가 실행되기 위해서는 메모리에 미리 올라가야 합니다.
메모리에 올라가있지 않으면 시작점인 main ()메소드를 호출하려고 하는데
메모리에는 main이 없기 때문에 실행을 할 수 없습니다.
main메소드도 누군가의 호출되기 전에는 메모리에 올라가지 않습니다.
그래서 main을 호출하기 위해서는 main 메소드 내용이 있어야하는데 이 main메소드는 누군가 호출하기전에
미리 메모리에 있어야 하기 때문에 static을 붙이는 것입니다. 그러면 시작점으로 main이 실행됨
Static의 정의
클래스에 static이라고 변수나 메소드를 지정한다면 그 변수나 메소드는 메모리가 독립적이여서 객체화 (인스턴스화) 시키지 않아도 메모리를 가지고 있으며 객체는 각각의 메모리를 갖지만 static을 모두 동일한 하나의 값이나 메소드로 갖는다
객체의 멤버 변수가 아닌 클래스 변수로 선언이 된다
즉 객체로 선언을 하지 않아도 메모리를 가져 사용을 할 수 있게 된다
어떤 객체라도 동일한 주소의 변수를 참조한다.
Static으로 선언된 메소드는 오버라이딩이 될까?
가능하지 않다 메모리가 독립적이므로 오버라이딩 할 수 없다
'Develop > JAVA' 카테고리의 다른 글
Singleton Design Pattern (싱글톤 디자인 패턴, 싱글톤 패턴) (0) | 2018.01.24 |
---|---|
인터페이스와 추상클래스 (0) | 2018.01.18 |
Java 문자열 반대로 출력 (0) | 2017.12.16 |
컬렉션 프레임워크 (Collection Framework) - ArrayList (0) | 2017.12.12 |
IntelliJ 사용하기 (0) | 2017.11.16 |