티스토리 뷰
static은 클래스가 로딩될 때 메모리에 로딩
Heap 공간이 아닌 Method area란 공유영역에 변수가 생성되어 모든 인스턴스가 하나의 변수를 공유
public class Qx1 {
public static void main(String[] args) {
EmployeeNo e1 = new EmployeeNo("김");
EmployeeNo e2 = new EmployeeNo("이");
EmployeeNo e3 = new EmployeeNo("박");
EmployeeNo e4 = new EmployeeNo("조");
e1.empInfo(); // 103. 김
e2.empInfo(); // 106. 이
e3.empInfo(); // 109. 박
e4.empInfo(); // 112. 조
}
}
class EmployeeNo {
static int index = 100;
int no;
String name;
public EmployeeNo(String name) {
index += 3; // 3씩 증가
this.no = index;
this.name = name;
}
public void empInfo() {
System.out.println(no + ". " + name);
}
}
자바 프로그램 실행 과정
- 코드 작성 및 컴파일 후에 클래스가 실행
- 클래스 로딩 - 클래스 멤버변수와 메서드가 메모리에 로딩
- main() 메서드 호출(실행)
- 인스턴스 생성 - 인스턴스 멤버변수와 메서드가 (new라는 키워드 만날 때마다) 메모리에 로딩
- 메서드 호출(실행) - 메서드 내의 로컬 변수가 메모리에 로딩
- 결과 출력
'배운 것 기록 > java' 카테고리의 다른 글
Scanner (0) | 2022.05.30 |
---|---|
싱글톤 (0) | 2022.05.29 |
[eclipse] 최소값, 절대값 (0) | 2022.05.26 |
배열에 순서대로 넣어서 출력하기(ArrayList) (0) | 2022.05.25 |
로컬 변수, 멤버변수 (0) | 2022.05.24 |
댓글