레퍼런스와 static

0

자바

목록 보기
7/17

레퍼런스와 static

  • 일반 변수와 객체를 가리키는 변수
//일반 변수
int score = 88;

// 객체를 가리키는 변수
Cat cat1 = new cat()'

//어떤 차이가 있을까??

레퍼런스 변수

  • 레퍼런스 변수는 객체를 가리킨다
  • 객체의 주소 정보를 담고 있다

기본형 변수와의 차이

  • 레퍼런스 변수는 객체를 간접적으로 저장한다
    • "객체의 주소"를 저장
  • 기본형 변수는 값을 직접 저장한다

객체도 변수에 담으면 안될까??

  • 객체는 하나의 변수에 담기에 너무 크다
  • 크기도 유동적
  • 자바는 객체 접근을 위해 어드레싱, 즉 주소지를 통한 접근 방식을 취한다

static 키워드

  • "공유"라는 개념을 담은 키워드
  • 클래스의 필드와 메소드에 적용될 수 있다.
  • 클래스에 고정되어 있는 변수나 메소드
  • static 키워드를 통해 생성된 정적 멤버들은 프로그램 종료시까지 메모리가 할당된 채로 존재

static의 특징

  • 메모리에 고정적으로 할당된다

    • static이 붙지 않은 메서드나 변수의 경우 객체가 생성될 때마다 호출되어 서로 다른 값을 가질 수 있다.
    • 각 객체들에서 공통적으로 하나의 값이 유지되어야 할 경우 static를 유용하게 사용
  • 객체 생성 없이 사용할 수 있다

    • static만 붙였을 뿐인데, 객체 생성 없이도 메서드나 변수를 사용 가능
  • 프로그램이 시작되면 메모리의 static 영역에 적재되고, 프로그램이 종료될 때 해제된다

    • 자동으로 메모리의 static 영역에 생성되므로 객체 생성 없이 사용 가능
  • Static 메서드 내에서는 인스턴스 변수를 사용할 수 없다

profile
목적지가 있는 개발자 백재원입니다.

0개의 댓글