Java의 static 정적 코드 블록 사용 상세 정보
일반적인 상황에서 만약에 일부 코드가 프로젝트가 시작될 때 실행해야 할 때 정적 코드 블록을 사용해야 하는데 이런 코드는 주동적으로 실행된다.프로젝트가 시작될 때 초기화해야 합니다. 대상을 만들지 않은 상황에서 다른 프로그램이 호출할 때 정적 방법을 사용해야 합니다. 정적 방법은 클래스가 불러올 때 불러옵니다. 예를 들어main 방법은 정적이어야 합니다. 이것은 프로그램 입구입니다.두 가지 차이점은 정적 코드 블록이 자동으로 실행된다는 것이다.정적 방법은 호출될 때만 실행된다.
2.정적 방법 고려 사항
클래스의 정적 방법을 사용할 때 주의:
a. 정적 방법에서는 같은 종류의 다른 정적 구성원(변수와 방법 포함)만 직접 호출할 수 있을 뿐 클래스의 비정적 구성원에 직접 접근할 수 없다.이것은 비정적 방법과 변수에 대해 클래스의 실례 대상을 먼저 만든 후에야 사용할 수 있고, 정적 방법은 사용하기 전에 사용할 수 있기 때문이다
객체를 만들 필요가 없습니다.
b. 정적 방법은this와 슈퍼 키워드를 어떤 방식으로든 인용할 수 없습니다. 정적 방법은 사용하기 전에 실례 대상을 만들 필요가 없기 때문입니다. 정적 방법이 호출될 때this가 인용하는 대상은 전혀 발생하지 않습니다(this 키워드는 방법 내부에서만 사용할 수 있고'호출 방법에 대한
개체 참조).
정적 변수는 특정한 대상에 속하지 않고 전체 종류의 변수에 속한다.어떤 방법도 체내의 변수를 정태로 표시할 수 없습니다. 예를 들어fun() {static int i=0;/불법입니다.}
셋.절차를 예로 들다
public class TestStaticCon {
public static int a = 0;
static {
a = 10;
System.out.println(" a=" + a);
}
{
a = 8;
System.out.println(" a=" + a);
}
public TestStaticCon() {
this("a :" + TestStaticCon.a); //
System.out.println(a);
System.out.println(" a=" + a);
}
public TestStaticCon(String n) {
System.out.println(n);
System.out.println(a);
}
public static void main(String[] args) {
TestStaticCon tsc = null;
System.out.println("!!!!!!!!!!!!!!!!!!!!!");
tsc = new TestStaticCon();
}
}
:
a=10
!!!!!!!!!!!!!!!!!!!!!
a=8
a :10
8
8
a=8
4.네티즌 제공
public class StaticBlock {
static {
System.out.println(" ");
}
{
System.out.println(" , ");
}
public StaticBlock() {
System.out.println(" ");
}
public static void main(String[] args) {
new StaticBlock();
new StaticBlock();
}
}
.결론: 정적 코드 블록은 클래스가 불러올 때 자동으로 실행되고, 비정적 코드 블록은 대상을 만들 때 자동으로 실행되는 코드이며, 대상을 만들지 않으면 이 클래스의 비정적 코드 블록을 실행하지 않는다.또한 실행 순서는 정적 코드 블록 - 비정적 코드 블록 - 구조 함수입니다.그 중에서 궁금한 것은'a가 부류대참구조방법에서의 값:10'이었다. 그때 왜 8이 아니었는지, debug(F11, 단점을 직접 설정하고 운행할 수 없다. 그러면 직접 운행과 다름없다)를 생각해 보니 무참구조방법에 먼저 들어갔다.첫 번째 문장을 실행하고 다른 구조 방법으로 전환했습니다. (옳든 그르든 첫 문장은 실행해야 합니다. 이때 a든 10이든 비정적 코드 블록은 아직 실행되지 않았습니다.) 이 문장이든 원본을 찾을 수 없습니다. 이 문장이든 이 경고(오류가 아닙니다. 프로그램이 계속 정상적으로 실행되기 때문입니다)를 제시한 다음에 비정적 코드 블록을 실행했습니다. 이어서 참고가 있는 구조 방법에서 계속 실행했습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.