정적 키워드 다음에 데이터 형식, 변수 이름 다음에 있습니다. 정적 멤버(블록, 변수, 메서드, 중첩 클래스)를 만들려면 정적 이라는 키워드가 있는 선언 앞에 옵니다. 멤버가 정적으로 선언되면 해당 클래스의 모든 개체를 생성하기 전에 개체에 대한 참조 없이 액세스할 수 있습니다. 예를 들어, 아래 자바 프로그램에서는 Test 클래스의 개체를 만들지 않고 정적 메서드 m1()에 액세스합니다. 먼저 정적 변수와 정적 메서드를 살펴보겠습니다. 오류: 변수 MY_VAR이 정적 변수와 비정적 변수에 대해 초기화되지 않았을 수 있습니다. 기본 정수(길고 짧은 등): 0개의 기본 부동 점(float, double): 0.0 부울: 거짓 개체 참조: null 4) C에서 정적 변수는 상수 리터럴을 사용하여 초기화할 수 있습니다. 예를 들어 컴파일에서 다음 프로그램이 실패합니다. 자세한 내용은 이쪽을 참조하십시오.
정적 변수가 저장되는 위치와 작동 방식? 정적 중첩 클래스 : 정적 수정자를 사용 하 고 최상위 클래스를 선언할 수 없습니다 하지만 중첩 된 클래스를 정적으로 선언할 수 있습니다. 이러한 유형의 클래스를 중첩 정적 클래스라고 합니다. 정적 중첩 클래스의 경우 java에서 정적 중첩 클래스를 참조 변수가 정적으로 선언되면 변수의 단일 복사본이 만들어지고 클래스 수준의 모든 개체 간에 공유됩니다. 정적 변수는 기본적으로 전역 변수입니다. 클래스의 모든 인스턴스는 동일한 정적 변수를 공유합니다. 변수 수명은 범위(변수를 사용할 수 있는 위치)와 대조됩니다: “전역” 및 “local”은 수명이 아닌 범위를 참조하지만 범위는 종종 수명을 의미합니다. 많은 언어에서 전역 변수는 항상 정적이지만 일부 언어에서는 동적변수이지만 로컬 변수는 일반적으로 자동이지만 정적일 수 있습니다. `Stuff`라는 클래스를 선언하고 문자열 형식의 하나의 공용 정적 변수를 지정했습니다. 변수를 문자열 값 “나는 정적 변수입니다”로 초기화했습니다. 이제 이 클래스를 다음과 같은 주요 프로그램에서 사용할 수 있습니다: Application.java: 5) 정적 전역 변수 및 함수도 C/C++에서 가능합니다.
변수 또는 함수의 범위를 파일로 제한하는 것이 목적입니다. 자세한 내용은 C의 정적 함수를 참조하십시오. 위의 예에서 볼 수 있듯이 두 개체가 동일한 정적 변수 복사본을 공유하고 있으므로 동일한 개수 값을 표시했습니다. 예 3: 인스턴스 변수의 값을 변경하면 모든 개체에 인스턴스 변수의 독립적인 복사본이 있으므로 다른 개체에 반영되지 않습니다. 그러나 정적 변수의 값을 변경하면 정적 변수의 단일 복사본이 클래스의 모든 개체에서 공유되는 클래스에 대해 유지관리되므로 모든 개체에 반영됩니다. 정적 메모리에 저장된 정적 변수 . Java 프로그램 클래스 로더를 실행하는 동안 코드에서 2 개의 정적 메서드를 작성하는 경우 먼저 클래스를로드한 다음 프로그램에서 얼마나 많은 정적 메서드를 찾습니다. 이러한 모든 프로세스는 JRE에서 실행됩니다.
클래스 로더와 JVM은 정적 변수에 메모리를 저장하고 할당하는 데 도움이 됩니다. 그 후 가비지 수집기는 코드의 모든 낭비 메모리를 확인합니다. 범위 및 범위 측면에서 정적 변수는 프로그램의 전체 실행 범위에 속하지만 범위가 더 제한적일 수 있습니다. 기본 구분은 전역 범위를 가지므로 프로그램 전체의 컨텍스트에 있는 정적 전역 변수와 로컬 범위가 있는 정적 로컬 변수 간에 있습니다. 정적 로컬 변수는 정적 로컬 변수가 상주하는 함수가 호출되고 해당 값이 유지되고 디클링되는 함수에 대한 많은 호출을 통해 액세스 가능한 횟수에 관계없이 한 번만 초기화되기 때문에 로컬 변수와 다릅니다. ared, 예를 들어 카운트 변수로 사용할 수 있습니다. 정적 변수에는 파일 범위 또는 모듈 범위의 한 형태인 C의 내부 연결과 같은 모듈 범위 또는 일부 변형이 있을 수도 있습니다. 참고: 상수 변수 이름은 대문자로 있어야 합니다! 을 사용할 수 있습니다.(_) 사이. 1) 위의 코드는 정적 메서드가 호출되기 전에 정적 변수에 액세스하기 전에 클래스 MyClass가 로드되는 즉시 실행됩니다.