static 은 언제 사용해야 할까 ??

BackEnd_Ash.log·2021년 9월 7일
0

ComputerScience

목록 보기
6/8

다들 static 을 많이 사용해봤을것 같다

우선적으로 static 을 사용하는것 과 인스턴스 차이로는 무엇일까???

📌 static 과 인스턴스 차이

인스턴스

class Test {
  ....
 function method_test() {
   ....
 }
}
const test = new Test();
test.method_test();

static

class Test{
 static function method_test(){
   ....
 }
}

Test.method_test()

인스턴스는 객체를 생성한후에 메서드와 멤버변수를 호출하는 반면에
static클래스이름. 이런식으로 바로 호출을 할수가 있다.

📌 메모리 할당

어째서 그런걸까 ??

객체를 생성해서 멤버변수 라던지 메소드를 호출하는 경우
객체가 생성되어야 값이 초기화가 되고 메모리에 올라가게 됩니다.
즉 객체를 생성하기 전에는 메소드라던지 멤버변수라던지 어디에도 존재하지 않고
만들어지는 순간 멤버변수와 메소드가 메모리 어딘가에 존재하게 됩니다.

반면에 ,

static 이 붙은 변수 및 클래스는 프로그램 실행 시 메모리에 자동으로 생성이 된다.

📌 static 사용시 주의점

  1. 프로그램 시작시 메모리가 할당되기때문에 , 한번도 사용하지 않는 전역변수를 할당할 수도 있다 그렇기때문에 전역변수 보다는 싱글톤 클래스의 멤버변수로 만드는 방법을 권장한다.
  1. 전역 이라는 것은 곳 어디서든 접근이 가능하다는 것이므로, 내가 의도하지 않았는데 값이 들어갔을 경우 추적이 힘들다.
  1. static 은 사용하는순간 바로 메모리에 할당되기에 , 초기에 바로 가져다가 사용해야할 경우 static 을 사용하게 되면 좋다
profile
꾸준함이란 ... ?

0개의 댓글