티스토리 뷰
반응형
[Java] static 키워드 변수 이해하기
static
static는 변수나 메소드에 키워드로 사용한다.
static 변수 사용하기 (1)
public class SeoulCity{
static String cityname = "서울";
public static void main(String[] args) {
SeoulCity city1 = new SeoulCity();
SeoulCity city2 = new SeoulCity();
}
}
위와 같이 SeoulCity 클래스의 cityname은 항상 서울이 될 것이다.
city1과 city2에 static을 선언하지 않는다면 city1의 cityname과 city2의 cityname이 메모리에 각각 할당되어 사용된다.
하지만 static을 사용한 변수는 메모리 할당이 한번으로 끝난다. 이렇게 되면 몇백개의 객체를 생성하게 되면 static이 없어 많은 메모리를 소비하게 된다
그렇지만 cityname을 city1, city2 각각 변경하여 사용하게 된다면 static을 사용하면 안된다. city1에서는 부산, city2에서는 대전으로 바꿔야 하는 일이 생긴다면 city1이든 city2든 바뀐값으로 사용되게 되므로 주의 해야 한다.
그래서 해당 변수의 값을 변경하지 못하게 하는 final과 함께 사용하여 그 값을 변하지 못하게 하면 된다. final로 선언한 변수를 변경하려고 하면 예외가 발생하므로 주의 해야 한다.
static 변수 사용하기 (2)
public class CounterShare {
static int count = 0;
public static void main(String[] args) {
CounterShare counter1 = new CounterShare();
CounterShare counter2 = new CounterShare();
counter1.count = 1;
System.out.println("counter1 = " + counter1.count);
counter2.count++;
System.out.println("counter2 = " + counter2.count);
}
}
위 코드를 실행시키면 출력값은
counter1 = 1
counter2 = 2
와 같이 나오게 된다.
CounterShare의 count 값은 개별 클래스 객체의 값을 유지 하는 것이 아니다. counter1과 counter2의 같은 count를 공유하게 되는 것이다.
반응형
'Dev > Java' 카테고리의 다른 글
[Java] Random 숫자 및 자료형 생성 하기 Math.random과 비교 (0) | 2017.07.17 |
---|---|
[Java] Java를 이용해 AWS S3 파일 업로드 하기- AWS S3 Upload for java (0) | 2016.12.15 |
[Java] AWS S3 Security Credentials 생성 하기 (0) | 2016.12.14 |
[Java] Maven Servlet WEB-INF/lib 적용되지 않을 때 (0) | 2016.12.09 |
[Java] JDBC JAVA Mysql 연동하기 (2) | 2016.12.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Picasso
- Python
- 컵라면
- 예제
- Custom
- 생성
- 맛집
- java
- 안드로이드 스튜디오
- 리뷰
- Android Stuido
- 편의점
- 하카타
- 직화
- 일식
- 에러
- 라면
- 설치
- 후쿠오카
- Android
- GS25
- 인스턴트
- library
- 돈돈
- 라멘
- Android Studio
- MongoDB
- 일본
- jar
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함