Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 정적 변수와 비 정적 변수의 차이점

<시간/>

변수는 프로그램이 조작할 수 있는 명명된 저장소를 제공합니다. 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