클래스 로더 로드 순서
8866 단어 JVM
public class Parent {
{
System.out.println("Parent ");
}
static {
System.out.println("Parent ");
}
public Parent() {
System.out.println("Parent ");
}
public static void staticMethod1() {
System.out.println("Parent 1");
}
public static void staticMethod2() {
System.out.println("Parent 2");
}
}
테스트 클래스:
public static void main(String[] args) {
Parent.staticMethod1();
Parent.staticMethod2();
Parent parent = new Parent();
}
결과:
Parent
Parent 1
Parent 2
Parent
Parent
자, 하위 클래스:
public class Child extends Parent {
{
System.out.println("Child ");
}
static {
System.out.println("Child ");
}
public Child() {
System.out.println("Child ");
}
public static void staticMethod1() {
System.out.println("Child 1");
}
public static void staticMethod2() {
System.out.println("Child 2");
}
}
테스트:
public static void main(String[] args) {
Child.staticMethod1();
Child.staticMethod2();
Child child = new Child();
}
결과:
Parent
Child
Child 1
Child 2
Parent
Parent
Child
Child
로드 순서: 상위 클래스의 정적 코드 블록 – > 하위 클래스의 정적 코드 블록 -> 상위 클래스의 일반 코드 블록 -> 상위 클래스의 기본 구조자 -> 하위 클래스의 일반 코드 블록 -> 하위 클래스의 구조자
하위 클래스 정적 방법은 하위 클래스 정적 코드 블록에 불러온 후 하위 클래스의 일반 코드 블록 앞에
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IntelliJ IDEA 2019.2의 새로운 기능 프로파일 러를 사용해 보았습니다.이번의 새로운 기능은 초호화! 저는 퍼포먼스 개선을 자주 합니다만, IntelliJ IDEA에도 프로파일링 툴이 붙게 되었으므로, 사용해 보았습니다. 편리한 것 같았기 때문에, 앞으로의 메인 웨폰은 이것이 될 것 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.