20230220 [Java] 클래스 변수와 인스턴스 변수

Daisy🌷·2023년 2월 20일
0

클래스 변수 (static 변수)

  • static 변수란 다른 용어로 '정적 변수'라고도 한다.
static int serialNum;
- static 예약어 / 자료형 / 변수 이름
  • static 변수는 클래스 내부에 선언하지만, 다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아니다.
  • static 변수는 프로그램이 실행되어 메모리에 올라갔을 때 딱 한 번 메모리 공간이 할당된다. 그리고 그 값은 모든 인스턴스가 공유한다.
  • java에서 static 변수를 클래스 변수라고 하는 이유는 인스턴스마다 생성되는 변수가 아니라 클래스에 속해 한 번만 생성되는 변수이고 이를 여러 인스턴스가 공유하기 때문이다.
  • static 변수는 클래스 생성과 상관없이 처음부터 데이터 영역 메모리에 생성된다. 따라서 인스턴스 변수와 static 변수는 사용하는 메모리가 다르다.
  • 이렇게 생성된 static 변수는 private이 아니라면 클래스 외부에서도 객체 생성과 무관하게 사용할 수 있다.

멤버변수 (인스턴스 변수)

  • 멤버변수는 인스턴스 변수라고도 합니다.
  • 클래스가 생성될 때 힙(heap) 메모리에 생성되는 변수입니다.
  • 멤버 변수는 클래스의 어느 메서드에서나 사용할 수 있습니다.
  • 힙에 생성된 인스턴스가 가비지 컬렉터에 의해 수거되면 메모리에서 사라진다. 따라서 클래스 내부의 여러 메서드에서 사용할 변수는 멤버 변수로 선언하는 것이 좋다.
profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글