티스토리 뷰

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);
	}
	
}

 

 

자바 프로그램 실행 과정

  1. 코드 작성 및 컴파일 후에 클래스가 실행
  2. 클래스 로딩 - 클래스 멤버변수와 메서드가 메모리에 로딩
  3. main() 메서드 호출(실행)
  4. 인스턴스 생성 - 인스턴스 멤버변수와 메서드가 (new라는 키워드 만날 때마다) 메모리에 로딩
  5. 메서드 호출(실행) - 메서드 내의 로컬 변수가 메모리에 로딩
  6. 결과 출력

 

'배운 것 기록 > java' 카테고리의 다른 글

Scanner  (0) 2022.05.30
싱글톤  (0) 2022.05.29
[eclipse] 최소값, 절대값  (0) 2022.05.26
배열에 순서대로 넣어서 출력하기(ArrayList)  (0) 2022.05.25
로컬 변수, 멤버변수  (0) 2022.05.24
댓글
최근에 올라온 글
«   2024/12   »
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
글 보관함