>Java >java지도 시간 >Java의 정적 초기화 코드 블록과 비정적 초기화 코드 블록의 차이점은 무엇입니까?

Java의 정적 초기화 코드 블록과 비정적 초기화 코드 블록의 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-21 09:45:10507검색

What's the Difference Between Static and Non-Static Initialization Code Blocks in Java?

정적 및 비정적 초기화 코드 블록

Java에서는 static 키워드를 사용하여 클래스 수준 변수 및 메서드를 선언할 수 있습니다. 클래스의 인스턴스를 만들지 않고도 액세스할 수 있습니다. 그러나 클래스 내의 어떤 함수에도 속하지 않는 코드 블록과 함께 static을 사용할 수도 있습니다.

클래스 초기화 코드 블록

A 클래스 초기화 코드 블록은 static 수정자를 사용하여 선언됩니다. 클래스가 메모리에 로드될 때 실행되며 정적 변수를 초기화하고 다른 클래스 수준 작업을 수행하는 데 사용됩니다. 예:

Test 클래스의 인스턴스가 생성되기 전에 클래스 초기화 코드 블록이 실행되고 변수 a는 5로 초기화됩니다.

인스턴스 초기화 코드 블록

인스턴스 초기화 코드 블록은 정적 변수 없이 선언됩니다. 수정자이며 클래스의 인스턴스가 생성될 때 실행됩니다. 인스턴스 변수를 초기화하고 인스턴스에 대한 다른 초기화 작업을 수행하는 데 사용됩니다. 예:

Test 클래스의 생성자가 호출되기 전에 인스턴스 초기화 코드 블록이 실행되고 변수 a는 5로 초기화됩니다.

키 차이점

클래스 초기화 코드 블록과 인스턴스 초기화 코드 블록의 주요 차이점은 다음과 같습니다.

  • 클래스 초기화 코드 블록은 클래스가 로드될 때 실행되고, 인스턴스 초기화 코드 블록은 클래스의 인스턴스가 생성될 때 실행됩니다.
  • 클래스 초기화 코드 블록은 다음과 같습니다. 정적 변수에 액세스하는 반면, 인스턴스 초기화 코드 블록은 정적 변수와 인스턴스 변수 모두에 액세스할 수 있습니다.
  • 클래스 초기화 코드 블록은 클래스의 모든 인스턴스에서 공유되는 반면, 인스턴스 초기화 코드 블록은 클래스의 모든 인스턴스에서 공유됩니다. 각 인스턴스마다 다릅니다.

위 내용은 Java의 정적 초기화 코드 블록과 비정적 초기화 코드 블록의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.