변수는 프로그램이 조작할 수 있는 명명된 저장소를 제공합니다. Java의 각 변수에는 변수 메모리의 크기와 레이아웃을 결정하는 특정 유형이 있습니다. 해당 메모리에 저장할 수 있는 값의 범위 변수에 적용할 수 있는 작업 집합입니다.
정적 변수
정적 변수는 클래스 변수라고도 하며 클래스의 객체 전체에서 공통적으로 사용되며 이 변수는 클래스 이름을 사용하여 액세스할 수도 있습니다.
비정적 변수
정적이 아닌 클래스의 모든 변수를 비정적 변수 또는 인스턴스 변수라고 합니다.
다음은 정적 변수와 비 정적 변수의 중요한 차이점입니다.
Sr. 아니요. | 키 | 정적 | 비정적 |
---|---|---|---|
1 | 액세스 | 정적 변수는 정적 멤버와 비정적 멤버 함수에서 액세스할 수 있습니다. | 비정적 변수는 정적 멤버 함수로 액세스할 수 없습니다. |
2 | 공유 | 정적 변수는 전역 변수 역할을 하며 클래스의 모든 개체 간에 공유됩니다. | 비정적 변수는 해당 변수가 생성된 인스턴스 개체에 따라 다릅니다. |
3 | 메모리 할당 | 정적 변수는 공간을 덜 차지하며 메모리 할당은 한 번 발생합니다. | 비정적 변수는 더 많은 공간을 차지할 수 있습니다. 메모리 할당은 런타임에 발생할 수 있습니다. |
4 | 키워드 | 정적 변수는 static 키워드를 사용하여 선언됩니다. | 일반 변수에는 특별한 키워드가 필요하지 않습니다. |
정적 변수와 비정적 변수의 예
JavaTester.java
public class JavaTester { public int counter = 0; public static int staticCounter = 0; public JavaTester(){ counter++; staticCounter++; } public static void main(String args[]) { JavaTester tester = new JavaTester(); JavaTester tester1 = new JavaTester(); JavaTester tester2 = new JavaTester(); System.out.println("Counter: " + tester2.counter); System.out.println("Static Counter: " + tester2.staticCounter); } }
출력
Counter: 1 Static Counter: 3