Java에서의 스태틱블록
며칠 전에 코드를 보다가 우연히 발견했어요
static {
...
}
C++에서 와서 그게 왜 거기 있는지 몰랐어요.코드가 정상적으로 컴파일 되어 있기 때문에 에러가 아닙니다.이 정적 코드 블록은 무엇입니까?
정적 이니셜라이저예요클래스가 로드될 때(정확히 말하면 초기화되었지만) 실행됩니다.
"클래스 컨스트럭터"라고 생각할 수 있습니다.
인스턴스 이니셜라이저도 있습니다.인스턴스 이니셜라이저는 똑같습니다.단, 이 인스턴스 이니셜라이저에는static
키워드를 지정합니다.오브젝트의 새 인스턴스가 생성될 때 생성자의 코드와 더불어 실행됩니다.
스태틱 이니셜라이저입니다.클래스가 로드되어 정적 변수의 초기화를 배치하기에 적합한 위치에 있을 때 실행됩니다.
http://java.sun.com/docs/books/tutorial/java/javaOO/initial.html 에서
클래스에는 임의의 수의 스태틱 초기화 블록을 포함할 수 있으며, 이러한 블록은 클래스 본문의 어디에나 표시할 수 있습니다.런타임 시스템은 정적 초기화 블록이 소스 코드에 표시되는 순서대로 호출되도록 보장합니다.
정적 룩업 맵이 있는 클래스가 있는 경우 다음과 같이 표시될 수 있습니다.
class MyClass {
static Map<Double, String> labels;
static {
labels = new HashMap<Double, String>();
labels.put(5.5, "five and a half");
labels.put(7.1, "seven point 1");
}
//...
}
위의 정적 필드는 다음 방법으로 초기화할 수 없기 때문에 유용합니다.labels = ...
어떻게 해서든 풋메서드를 불러야 합니다.
클래스 로더에 의해 클래스가 로드될 때 실행되는 코드 블록입니다.이는 클래스의 스태틱멤버를 초기화하기 위한 것입니다.
스태틱하지 않은 이니셜라이저를 쓸 수도 있습니다.이것은, 한층 더 기묘하게 보입니다.
public class Foo {
{
// This code will be executed before every constructor
// but after the call to super()
}
Foo() {
}
}
스태틱 블록은 메인 기능 없이 프로그램을 실행할 수 있음을 보여주기 위해 사용할 수 있습니다.
//static block
//static block is used to initlize static data member of the clas at the time of clas loading
//static block is exeuted before the main
class B
{
static
{
System.out.println("Welcome to Java");
System.exit(0);
}
}
스태틱 블록은 프로그램의 라이프 사이클에서 한 번 실행되며, 스태틱 블록의 또 다른 특성은 메인 방식보다 먼저 실행된다는 것이다.
정적 블록은 코드 초기화에 사용되며 JVM이 클래스를 로드할 때 실행됩니다.자세한 내용은 다음 링크를 참조하십시오.http://www.jusfortechies.com/java/core-java/static-blocks.php
네, 정적 블록은 코드를 초기화하기 위해 사용되며 실행을 위해 JVM이 시작될 때 로딩됩니다.
static block은 이전 버전의 Java에서 사용되지만 최신 버전에서는 작동하지 않습니다.
언급URL : https://stackoverflow.com/questions/2943556/static-block-in-java
'programing' 카테고리의 다른 글
는 방법 자바의 QuickTools목록을 반복할. (0) | 2022.08.16 |
---|---|
vue.js 컴포넌트에서 css에서 소품을 사용하는 방법 (0) | 2022.08.16 |
Vuetify v-select 메뉴는 텍스트 필드 입력을 포함합니다. (0) | 2022.08.16 |
Vue JS의 Axios 약속 내에서 속성을 설정할 수 없습니다. (0) | 2022.08.16 |
VueJ를 사용하여 다른 창에서 PDF 파일 열기s (0) | 2022.08.16 |