///////
Search
🪄

클래스변수

전승환_0928

클래스 변수란?

정적(static) 변수
“한 번 먼저 (다른 객체보다 먼저) 올려서, 공유하는 변수”
= 클래스 변수
= 공용 변수 (공용으로 사용하기 때문)
객체 없이 접근 가능 - 객체가 생성되기 전에 메모리에 할당됨, 이 메모리를 계속 공유함
한 번 메모리에 할당되면, 프로그램 종료 때 해제됨
절차 지향 언어(c언어) 에서의 Static과는 다른 의미임
코드 예시
메인 메소드가 public이고 static 인 이유는? - 객체 생성과 관계 없이 제일 먼저 호출되므로 static, - main 호출 명령이 외부로부터 시작되므로 public 이다.

Java 메모리 영역에서의 정적(static) 변수 할당 순서

자바의 메모리 영역

코드 예시
자바의 메모리 영역은 세 가지로 분류된다.
Method Area
클래스가 생성될 때 클래스 변수들과 함께 올라가는 영역. 가장 먼저 할당되는 영역이다.
위의 예시에서는 CardTest 클래스, Card 클래스와 static 변수인 width와 height가 올라간다.
Call Stack
생성자 및 함수를 위한 영역
함수는 실행 될 때 올라가고 실행이 끝나면 파괴된다.
위의 예시에서는 프린트 함수들이 되겠다.
Heap
new를 이용해 실제 인스턴스 변수가 생성되는 영역.
위 예시에서는 c1과 c2이다.

김하늘, 박수진_0928

접근 예제
활용 예제 - 1
활용 예제 - 2
활용 예제 - 3