자바(Java) static

유필선·2024년 3월 13일
0

자바(Java)

목록 보기
13/20
post-thumbnail

static 이란?

static은 '정적인, 고정된' 이라는 뜻을 가지고 있다. 이러한 이름을 가지는 이유는 static이 앞에 붙는 변수나 메서드는 어떤 객체에 소속되는 것이 아닌, 클래스에 고정되어 있는 변수나 메서드이기 때문이다.

일반적으로 우리가 만든 class는 static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성 된다.
객체의 생성시에 할당된 Heap 영역의 메모리는 Garbage Collector를 통해 수시로 관리 받는다.

static의 특징

  • 메모리에 고정적으로 할당된다.
  • 객체 생성 없이 사용할 수 있다.
  • 프로그램이 시작되면 메모리의 static 영역에 적재되고, 프로그램이 종료될 때 해제된다.
  • static 메서드 내에서는 인스턴스 변수를 사용할 수 없다.

static 변수(정적 변수)

  • 메모리에 고정적으로 할당되어, 프로그램이 종료될 때 해제되는 변수

static 변수는 메모리에 한 번만 할당된다. 메모리에 한 번 할당되므로 여러 객체가 해당 메모리를 공유하게 된다.

static을 사용하여 여러 객체가 하나의 메모리를 참조하도록 하면위와 같이 사람에 대한 결과를 공유하게 되어 메모리 효율이 높아진다.

static을 사용하지 않는다면 위와같이 각각의 객체를 가지고 있기 때문에 사람에 대한 결과값은 달라지지만, 메모리가 많아진다.

상수(constant) 선언 - final

상수는 변하지 않는 수를 말한다. 자바에서 상수는 final이라는 예약어를 사용하여 선언한다.

  • 변수 선언과 동시에 초기화를 해도 되지만, 선언만 해놓고 밑에서 값을 지정해 줄 수 있음
  • 하지만, 한번 값이 정해지면 다시 값을 수정할 수 없음.
  • 만일 값을 변경하려면 final int
profile
이해해버려라!

0개의 댓글