반응형
변수는 코딩을 하면서 가장 많이 사용된다.
하지만 내가 사용하고 있는 변수의 명칭과, 해당 변수의 생성되는 시기와 사라지는 시기를 정확하게 알지 못한다고 생각했다. ( 사실 그동안 그걸 알아야하는 난이도 있는 개발을 못했다는게 맞을지도.. )
그래서 정리겸 글을 남긴다.
변수 종류 | 개념 |
인스턴스 변수 |
클래스의 인스턴스를 생성할 때 만들어진다. 객체를 여러개 생성하면 각각의 저장공간이 만들어진다. |
static 변수 |
변수 앞에 static을 붙여서 사용한다. 객체를 생성하지 않아도 사용할 수 있다. 변수를 공유하고 있기 때문에, 다른객체에서 이 변수값을 변경하면 변경된 값으로 계속 유지 된다. |
지역 변수 | 메소드, 생성자 안에서 사용되며 그 안에서만 사용이 가능하고 메소드의 실행이 끝나면 자동으로 사라진다. |
멤버 변수 | 클래스 내에서 선언된 변수 중 지역변수를 제외한 모든 변수. |
public class TestClass {
int x; // 인스턴스 변수
int y; // 인스턴스 변수
int z; // 인스턴스 변수
String str; // 인스턴스 변수
static String testStr; // static 변수
public void testFun(){
int v; // 지역 변수
}
}
위 코드에서 변수를 구분해 보면
x, y, z, str은 인스턴스 변수이면서 멤버 변수.
testStr은 멤버변수 이면서 static 변수.
v는 지역변수다.
지금까지는 크게 변수를 편의에 의해 만들어서 사용하는것이 좋았는데, 이번에 메모리단 관리까지 들어가면서 변수하나하나 만드는 것이 부담되고 특정 변수를 static변수에서 지역변수로 변경했을 뿐인데 성능 차이가 확연히 다르게 나타나는 것을 보고 느낀 것이 많다.
변수의 영역(?)이 다른 것은 역시나 언어를 만드신 분들이 네이밍 놀이를 한게 아니라 다 큰 뜻이 있었기 때문이었다.
반응형
'Develop > Android' 카테고리의 다른 글
안드로이드 공부 및 포스팅 계획 (0) | 2019.06.10 |
---|---|
Android ) Android Studio Logcat Font Change (0) | 2019.05.31 |
Drawable과 mipmap의 차이 (0) | 2019.04.30 |
Notification Skill #1 (0) | 2019.04.30 |
네비게이션바 숨기기 (0) | 2019.04.30 |