전공 지식/JAVA

Static class Member Method, Variables

큼큼이 2018. 12. 5. 17:37

우선 Static 에 대해 알아보자

Static : 정적, 고정 이라는 의미로 프로그램 실행 전반에 걸쳐 Static의 수명이 유지된다.


Static Method

- public static void method() { } 와 같이 static 을 붙여 메소드를 만든다.

만든 static method 에서는 static value 만 접근 가능하다.


Static Variables

- 스테틱 변수는 클래스 전체에 속해있는 변수로서 한 객체에 속해있는 변수가 아니다.

- 클래스의 모든 객체는 스테틱 변수를 Read, Change 가 가능하다. 


따라서 Static Method, Variables 은 Object를 생성하지 않고 다이렉트로 접근이 가능하다!


Thread 에서 Static 변수를 접근 하는 일이 있게 된다면 *동기화 문제* 를 빼놓을 수 없다.

Static 은 어디서나 접근이 가능하기 때문에 "순서" 에 영향을 크게 받는다.

*Synchronized* 를 꼭 하기 바란다!

또한 Static Variables 는 멀티 스레드 환경에서도 딱 1개만 생성된다. Thread 별로 생성되는 것이 아니다