> Java > java지도 시간 > 본문

고쳐 쓰기: Java 클래스를 참조하는 방법은 무엇입니까?

PHPz
풀어 주다: 2023-05-10 09:28:08
앞으로
1175명이 탐색했습니다.

1. 클래스를 적극적으로 참조하면 클래스 초기화가 발생합니다. 가상 머신이 시작되면 먼저 메인 메소드가 있는 클래스를 초기화합니다.

클래스의 객체 인스턴스화

클래스의 정적 멤버(최종 상수 제외) 및 정적 메소드 호출

java의 메소드 사용 .lang.reflect 클래스 Reflection 호출을 수행하는 패키지

클래스를 초기화할 때 상위 클래스가 초기화되지 않은 경우 해당 상위 클래스가 먼저 초기화됩니다

2. 클래스의 수동적 참조, 클래스 초기화 없음. 발생합니다

정적 필드에 액세스하면 실제로 이 필드를 선언하는 클래스만 초기화됩니다. 예: 하위 클래스를 통해 상위 클래스의 정적 변수를 참조하면 하위 클래스가 초기화되지 않습니다.

배열을 통해 클래스 참조를 정의하면 이 클래스의 초기화가 트리거되지 않습니다.

상수를 참조하면 초기화가 트리거되지 않습니다. 이 클래스의 (상수는 링크 단계에 있음) 호출 클래스의 상수 풀에 저장됩니다.)

Instance

package com.volcano.reflection;
//什么时候会发生类的初始化,除了第一个注释一直开着,其他都要独立打开测试,否则不准确
public class TestReflection3 {
    static {
        //1.虚拟机启动就会最先初始化main方法所在的类 会
        System.out.println("main方法被加载");
    }
    public static void main(String[] args) throws ClassNotFoundException {
        //2.实例化一个对象 会
        //new Father();
        //3.调用类的静态成员(除了final常量)和静态方法 会
        //System.out.println(Son.a);
        //4.使用java.lang.reflect包的方法对类进行反射调用 会
        //Class cls = Class.forName("com.volcano.reflection.Father");
        //5.当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类 会
        //new Son();
 
        //6.当访问一个静态域时,只有真正声明这个域的类才会被初始化 不会
        //System.out.println(Father.a);//两个都是只加载Father
        //System.out.println(Son.a);//因为a是Father的静态成员
        //7.通过数组定义类引用,不会触发此类的初始化 不会
        //Father[] fathers = new Father[10];
        //8.引用常量不会触发此类的初始化 不会
        //System.out.println(Father.B);
 
    }
}
class Father{
    static {
        System.out.println("Father被加载");
    }
    static int a=100;
    static final int B = 300;
}
class Son extends Father{
    static {
        System.out.println("Son被加载");
    }
    static int c=200;
 
}
로그인 후 복사

위 내용은 고쳐 쓰기: Java 클래스를 참조하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿