안녕하세요. 안드로이드 초보 개발자 입니다.
안드로이드보다 자바 코딩을 좀더 많이 해봤습니다.
여러 교수님께 강의를 들으면 static 변수는 꼭 필요하지 않은 경우에는 삼가하는 것이 좋다고 배웠는데
웹 검색 등으로 찾게 된 안드로이드 예제 소스를 보면 static 변수를 많이 쓰더라구요.
static 변수는 매인 프로그램이 시작되기 이전에 메모리에 적재되고 프로그램이 종료될때까지 할당된 메모리를 계속 차지하고 있는것으로
알고 있습니다.
만약 한번만 쓰는 변수를 static으로 선언한다는 것은 메모리 낭비라고 생각듭니다.(가정인데... 쓰는 메모리가 너무적죠?? ^^;)
제가 자바 코딩할 때 객체 멤버 변수가 아닌 클래스 맴버 변수로 static 변수를 썼었습니다. 그 이외에는 거의 써본적이 없었죠.
Inner 클래스에 static class 선언에 대한 차이는 알고 있습니다.
안드로이드에서 static 변수가 자바에서 생각하는 static 변수와 차이가 있어서 많이 쓰는것인지 어떤지 알고 싶습니다.
static 변수에 대한 안드로이드 고수님들의 조언 부탁드립니다.
위에 내용은 C에 관해서 static 을 이야기 하는 경우가 많은거 같습니다.
java 의 경우라면 static 을 정확하게 표현하자면 instance 변수와 class 변수로 나눠서 설명하는게 더 맞을거 같네요..
oop 의 특징에 따라 static 해지는게 오히려 성능면에서는 더욱 빨라지고 메모리 사용이 더욱 편해 질지도 모릅니다.
Object 변수를 call by reference 로 사용할때 pointer 의 개념이 아니라 reference의 개념이기 때문에 서로 주고 받을때
reference를 복사하기 때문에 static 이 오히려 더 좋고 memory release 도 더욱 편해 보이기도 합니다.
그렇다고 해서 static 이 반듯이 우수한건 아닌데 문제는 임계영역이 발상되어 멀티 Thread 환경에서는 동기화 처리 해줘서 사용해야
하는데 이럴땐 오히려 성능이 저하 됩니다.




꼭 필요한 경우가 가끔 있긴 합니다만..
비슷하게 사용하거나 덜 사용하지 않나요?
Application 클래스 쓰면 Constants 같은 클래스 만들 필요도 없구요..