레이코 :
package io.renren;
/ **
* 9/29/17에 루트 작성.
* /
공용 클래스 StaticTest {
정적 INT 연령 = 1;
INT age1 = 2;
{정적
에서 System.out.println는 ( "이것은 정적 블록");
}
{
에서 System.out.println는 (AGE1 + "이것은 정상적인 블록은")
}
StaticTest 공공 () {
에서 System.out.println ( "이것은 생성자");
}
정적 무효 표시 공개 () {
에서 System.out.println는 ( "이것은 정적 방법");
}
재미있는 공극 공개 () {
에서 System.out.println는 ( "이것은 종래의 방법");
}
공공 정적 무효 메인 (문자열 []에 args) {
//System.out.println(age);
StaticTest의 t = 새로운 StaticTest ();
StaticTest.show ();
t.fun ();
/*System.out.println(t.age1);*/
문자열 A =에서 Boolean.toString (TRUE);
에서 System.out.println (a);
}
}
결과 :
초기화 시퀀스 자바
클래스 변수 (정적 변수), 인스턴스 변수 (비 정적 변수) (예 : 클래스 변수 [변수 정적, 정적 코드 블록) 정적 키워드 변성 정적 코드 블록, 코드 블록 비 정적 초기화 타이밍은 클래스 인스턴스를 생성하기 전에 초기화되는 초기화되고, 순차적으로 위에서 아래로 순서대로 실행된다;
정적 키워드 수정하지 않는다 (예 : 인스턴스 변수 [비 정적 변수,
비 정적 코드 블록) 클래스 생성자 코드 블록보다 실질적 초기화가 실행되는 클래스 생성자 추출되지만 우선 또한 위에서 아래로 순차적으로 수행하는 수행한다.
일 예에서, 새로운 클래스 B가 먼저로드해야 할 때. (뉴를 사용하여 만든 클래스 로더를 호출 할 때 자바 클래스 만 부과됩니다)
부모 클래스가 처음으로로드 된 클래스를로드하는 동안은, 다음 B 서브 클래스 로딩이
부모 클래스 A를로드 한 후, 정적 작업이 완료 (정적 코드 등 초기화 코드에 따라 출현 순서로 동일한 수준이다 변수)
정적 동작 완료 서브 클래스 B를로드 한 후
클래스 로딩이 완료되면 A는 인스턴스화
1. 소단위 클래스 B를 인스턴스화 할 때, 제 부모 클래스 A2, 상위 클래스 A의 인스턴스는 인스턴스 (비 정적 코드)의 제 1 부재를 인스턴스화한다
2. 부모 클래스 생성자는
실시 예 3 서브 클래스 B의 구성원 의 (비 정적 코드)
B의 생성자 4. 서브
> 부모 클래스 비 정적 초기화 코드 - -> 부모 클래스의 생성자는 초기화 -> 비 정적 코드의 설정 서브 -> 서브 클래스의 생성자 초기화 될 정적 코드를 초기화> 자식 클래스 - 정적 코드 부모를 초기화
요약 :
실행 보통 순서 : 정적 클래스의 초기화 코드 - 기반의 비 초기화 정적 코드 >> - -> 클래스 생성자이 초기화> 클래스의 인스턴스를 생성
순차적 계층에서 수행되는, B는 상속
부모 클래스의 정적 코드를 초기화 -> 정적 코드의 서브 클래스를 초기화 -> 클래스의 인스턴스를 생성 - >> 부모 클래스의 비 정적 코드를 초기화 -> 부모 클래스 생성자 초기화 -> 비 정적 코드의 서브 클래스를 초기화를 -> 초기화 서브 클래스의 생성자
자바 클래스 로더 : 정적 코드 실행로드 클래스, 위치 동안 발생
비 정적 코드를 수행하면, 생성자에 우선 클래스 코드 실행의 인스턴스화시에 발생한다. 위치 : 클래스 생성자
----------------
면책 조항 :이 문서에 원래 문서 CSDN 블로거 "진평 마을 황산 영웅"이며, BY-SA 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요 CC 4.0을 따릅니다.
원본 링크 : HTTPS : //blog.csdn.net/qq_25615395/article/details/78294985