主动引用和被动引用

主动引用和被动引用

1.new 对象,反射获取类对象 都属于主动引用

主动引用

1.main()方法是程序的入口,函数从这里先开始

2.你主动new 一个对象肯定初始化啊!

3.调用非静态页会初始化,总共就出了final常量,其他不管调用一个类的啥变量,方法都会实例化这个变量。除了final常量,一切方法都依赖于这个类。

4.反射要获取class对象,你不初始化,怎么会有class?

5.因为子类必须要知道父类写什么方法了,所以必须要瞅瞅父类的家产(方法和变量)

package Reflection;
public class Tets04 {
    static {
        System.out.println ("main类被引用");
    }
    public static void main(String[] args) throws ClassNotFoundException {
//        Son son = new Son ();//初始化一个类,会先初始化他的父类
//        Class. forName ("Reflection.Son");
        //不会产生类的引用
        System.out.println (Son.b);//子类调用父类的变量,子类不会被加载
        Son[] arr = new Son[10];//只是一片数组,并不会加载类
        System.out.println (Son.M);//常量和静态在链接过程中已经调入常量池之中了
    }
}
class Father{
    static int b = 2;
    static {
        System.out.println ("父类被加载");
    }
}
class Son extends Father{
    static {
        System.out.println ("子类被加载");
        m = 300;
    }
    static int m = 100;
    static final int M = 1;
}
posted @ 2020-04-18 18:45  li33的博客  阅读(429)  评论(0编辑  收藏  举报