> Java > java지도 시간 > Java 키워드 static에 대한 자세한 소개

Java 키워드 static에 대한 자세한 소개

黄舟
풀어 주다: 2017-03-16 09:52:24
원래의
1775명이 탐색했습니다.

static은 "전역" 또는 "정적"을 의미하며, 은 멤버 변수를 수정하는 데 사용됩니다. 멤버 메소드 도 정적 코드 블록 을 형성할 수 있지만 Java 언어에는 전역 변수 개념이 없습니다.

정적으로 수정된 멤버 변수와 멤버 메서드는 클래스의 모든 객체와 독립적입니다. 즉, 클래스의 특정 인스턴스에 의존하지 않고 클래스의 모든 인스턴스에서 공유됩니다. 이 클래스가 로드되는 한

Java Virtual Machine은 런타임 데이터 영역에서 메소드 영역을 기반으로 결정할 수 있습니다. 수업 이름에서 를 찾아보세요. 따라서 정적 개체는 해당 개체가 생성되기 전에 어떤 개체도 참조하지 않고도 액세스할 수 있습니다.

public으로 수정된 정적 멤버 변수와 멤버 메서드는 본질적으로 전역 변수이자 전역 메서드입니다. 해당 클래스의 객체가 선언되면 정적 변수의 복사본이 생성되지 않습니다. 클래스의 모든 인스턴스는 동일한 정적 변수 를 공유합니다.

정적 변수 앞에는 비공개 수정이 가능하며, 이는 이 변수가 클래스의 정적 코드 블록이나 클래스의 다른 정적 멤버 메서드에서 사용될 수 있음을 나타냅니다(물론 --- 넌센스)에서 사용되는 비정적 멤버 메서드에서도 사용할 수 있지만 다른 클래스의 클래스 이름을 통해 직접 참조하지 않는 것이 중요합니다. 실제로 프라이빗은 액세스 권한 제한을 의미하고 정적은 인스턴스화 없이 사용할 수 있다는 것을 의미하므로 이해하기가 훨씬 쉽습니다. static 앞에 다른 접근 권한 키워드를 추가하는 효과도 동일합니다.

정적의 몇 가지 특징:

(1) 정적 변수는 정적 변수라고도 합니다. 변수, 정적 변수 및 비정적 변수의 차이점은 정적 변수는 모든 객체에 의해 공유되며 메모리에 복사본이 하나만 있다는 것입니다. 클래스가 처음 로드될 때만 초기화됩니다. 비정적 변수는 객체가 소유하며 객체를 생성할 때 초기화됩니다. 복사본이 여러 개 있으며, 각 개체가 소유한 복사본은 서로 영향을 주지 않습니다.

(2) statice에는 두 가지 기능이 있습니다. 첫째, 생성된 객체 수에 관계없이 특정 도메인에 단일 저장 공간만 할당하거나 객체가 생성되지 않는 경우에도 마찬가지입니다. ; 둘째, 메소드가 이를 포함하는 객체와 연관되지 않기를 바랍니다. 즉, 객체를 생성하지 않고도 해당 메소드를 호출할 수 있기를 바랍니다.

(3) statice에 의해 수정된 모든 멤버 변수 및 멤버 메서드는 클래스의 모든 개체에 종속되지 않으며 모든 인스턴스에서 공유됩니다.

(4) 메모리에는 정적 변수의 복사본이 하나만 있습니다. JVM은 클래스를 로드하는 과정에서 정적 메모리를 한 번만 할당합니다. 클래스 이름으로 직접 액세스할 수 있습니다.

(5) 정적 코드는 클래스에 바인딩됩니다. 클래스 로드에 성공하면 정적 코드가 실행되었으며 앞으로는 이 작업을 다시 수행하지 않을 것입니다. 정적 코드. Class.forName()의 기능은 JVM에 지정된 클래스를 찾아 로드하도록 요청하는 것입니다. 이는 JVM이 클래스의 정적 코드 세그먼트를 실행한다는 의미입니다.

(6) 정적 메소드 속성 초기화는 클래스가 로드될 때 초기화됩니다. 정적 메서드 속성 초기화 대신.

예:

public class Test {
     static int i;
     static
     {
          i++;
          System.out.println("outt i:"+i);
     }
     static void outi()
     {
            i++;
            System.out.println("output i:"+i);
     }
     public static void main(String [] argStrings)
     {
          Test test=new Test();
          test.outi();
     }
}
로그인 후 복사

출력 결과:

outt i:1
output i:2
로그인 후 복사



위 내용은 Java 키워드 static에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿