static

이수보🧑🏻‍💻·2022년 1월 10일
0

초급

목록 보기
12/25

코딩을 향한 우리의 사랑은 영원히 지속될 것 입니다. 그리고 이 블로그를 보는 모든 사람들이 코딩을 사랑할 수록 저도 더욱 사랑하겠죠 이것이 static입니다.

static

static은 정적이라는 뜻으로 변하지 않는 것이라고 볼 수 있다.
static은 전역변수나 메서드에만 붙일 수 있다.
static을 붙이면 프로그램 실행 시 메모리에 올라간다.
객체 생성을 하지 않아도 사용할 수 있다.
static을 붙인 변수는 객체간에 변수의 값을 공유한다.

static이 붙은 멤버의 명칭으로는
클래스 변수, 클래스 메서드

static이 붙지 않은 멤버의 명칭으로는
인스턴스 변수, 인스턴스 메서드

위에서 변수에 static을 붙인다고 했는데 이유로는
값을 서로 공유하기 위해서 붙이는 것이다.

주로 싱글톤 패턴에 많이 사용된다.

메모리에 한 번만 올라가기 때문에 메모리 이점을 얻을 수 있기 때문인데

앞서 사용자 정의 타입 에서 new 를 사용하는 것을 봤을 텐데
이 new 의 의미는 새로운 객체를 생성하겠다는 의미이다. 때문에 이 new 를 사용할 때마다 메모리에 올라가고 각 메모리에 따라 주소값이 다르기 때문에 같은 변수라도 값이 서로 다르지만

이 static을 변수에 사용하면
Student st1 = new Student();
Student st2 = new Student();

st1.age++; 을 하게 되면
System.out.println(st2.age)는 증가된 값을 출력하게 된다.

static은 나중에 싱글톤 패턴 때 더욱 자세하게 보자 ㅎㅎ

0개의 댓글