ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] static 변수에 대해서 알아보자 (이론편)
    백엔드/부족한 기본 정리 2020. 8. 24. 22:40

          로재의 개발 일기      

    static 변수

    static 변수에 대해서 다들 분명 알 것이다.

    코딩을 1달만 해도 아는, static 예약어


    오랜만에 Do-it  자바 프로그래밍 입문 서적을 꺼내보다가

    부족한 부분이 있어서 틈틈히 정리를 시작하게 되었다.


    우선 오늘은 static 변수!!


     static이란 무엇인가?

    static 변수란, 다른 용어로 '정적 변수'라고 한다.

    자바 뿐만이 아니라 타 언어에서도 비슷한 개념으로 사용되고 있는 변수로


    자바에서는 다른 멤버 변수처럼 클래스 내부에서 선언을 한다.

    1
    static int value;
    cs


     static의 생성 시기

    static 변수는 클래스 내부에서 선언하지만, 다른 멤버 변수처럼 인스턴스(클래스를 통해서 할당된 실체)가 

    생성될 때 생성되는 변수는 아니다.


    static 변수는 프로그램이 실행되어 메모리에 올라갔을 때

    한번만 '메모리 공간'에 할당되는 변수이다.


     변수

    생성 시기 

    소멸 시기 

    메모리 영역 

    호출 사용법 

     클래스 변수

    클래스가 메모리에 올라감 

    프로그램 종료 (서버 종료) 

    메소드 영역 

    클래스 이름, 인스턴스의 변수 이름

     인스턴스 변수

    인스턴스가 생성됌 

    인스턴스가 소멸됌 

    힙 영역 

    인스턴스 이름, 변수 이름 

     지역 변수

    블록 안에서 변수가 선언됌 

    블록을 나올때 

    스택 영역 

    변수 이름 


    즉, 모든 인스턴스가 공유할 수 있으며

    디자인 패턴 기법의 '싱글톤'에서 하나의 변수를 공유하기 위해서

    사용할 수 있다는 자연스러운 흐름이 다가왔다.


     static의 생성 시기


    데이터 영역 -> 스택 메모리 -> 힙 메모리


    위를 따르며

     static 메소드의 경우도 마찬가지이다.


    매우 중요하다고 생각합니다.

    (이후에 자바 코어, 스프링 코어를 공부할 때 기본적인 지식)



    마무리

    간략하게 설명한 static

    설계하기 나름인것 같습니다.



    - 다음 글 -  

    > [Java] static 변수에 대해서 알아보자 (실전편) <


    반응형
Designed by Tistory.