티스토리 뷰
static 변수와 static 메소드는 static 메모리 영역에 존재합니다. (자바의 메모리 영역은 다음 글에서 다룹니다.)
객체가 생성되기 전에 이미 할당이 되어있기 때문에 객체 생성없이 바로 접근할 수 있습니다.
static 변수
-
클래스 변수 : 클래스가 정의만 되어도 접근이 가능한 변수
-
application이 실행되면 모두 메모리에 할당되고, 종료되면 삭제되는 변수
메모리 할당을 딱 한 번만 하게 되어 메모리 사용에 이점을 볼 수 있습니다.
또한, 해당 클래스에 의해 생성된 모든 객체에 의해 공유될 수 있습니다.
인스턴스 변수의 경우 ( non-static )
public class Test {
int num = 0;
public Test() {
num++;
System.out.println(num);
}
}
클래스 변수의 경우 ( static )
public class STest {
static int snum = 0;
public STest() {
snum++;
System.out.println(snum);
}
}
-> static으로 선언한 snum의 값이 공유되어 증가된 결과값이 나오게 되었습니다.
static 메소드
-
객체를 생성하지 않아도 호출할 수 있는 메소드
-
대표적으로 java.util.Math 가 있습니다.
'JAVA > 이론' 카테고리의 다른 글
[JAVA] JAVA의 프로그래밍 과정 / JVM의 메모리 구조 - stack , heap , static (0) | 2019.11.27 |
---|---|
[JAVA] [디자인패턴] 싱글톤 패턴 ( Singleton Pattern ) (0) | 2019.11.27 |
[JAVA] 배열 ( Array ) 사용하기 - 선언 , 초기화 , 출력 , 복사 (0) | 2019.11.27 |
[JAVA] method (메소드 / 메서드) - public , protected , default , private , static , non-static (1) | 2019.11.18 |
[JAVA] 형 변환 - 묵시적 형 변환 , 명시적 형 변환 (0) | 2019.11.18 |