Java之类的主动使用和被动使用

开心一笑

「把你最值钱的东西交出来!」面对劫匪的恐吓,男友二话不说,把我给推了出去。一时间我竟不知应该感动还是生气。

提出问题

Java类的主动使用和被动使用分别是那些情况???

解决问题

Java类主动使用情况,会导致类的初始化:
1)创建类的实例
2)访问某个类或接口的静态变量,或者对该静态变量赋值
3)调用类的静态方法
4)反射(如Class.forName("com.bunny.Test"))
5)初始化一个类的子类
6)Java虚拟机启动时被表明为启动类的类(JavaTest)

其他使用java类方式,都可以被看作是被动使用,都不会导致类的初始化。

package com.evada.de;

class ChildClass extends  ClassUsed{
    public static int c = 0;
}

/**
 * Created by Ay on 2016/5/24.
 */
public class ClassUsed {

    public static int a = 0;

    public static void main(String[] args) throws Exception{

        /** 创建类的实例  **/
        ClassUsed classUsed = new ClassUsed();

        /** 访问某个类或接口的静态变量,或者对该静态变量赋值 **/
        int b = ClassUsed.a;

        /** 调用类的静态方法  **/
        ClassUsed.test();

        /** 反射 **/
        Class.forName("com.bunny.Test");

        /** 初始化一个类的子类 **/
        ChildClass.c = 10;

        /** Java虚拟机启动时被表明为启动类的类 **/
        //java com.hwy.MyTest
    }

    public static void test(){

    }
}

Java之类的主动使用和被动使用_第1张图片
美图.png

读书感悟

  • 纵有疾风起、人生不言弃 ,风起云涌时、奋力求生存
  • 即使起风了,也要好好的活下去!
  • 再没有什么比幸福的回忆更妨碍幸福的了。

你可能感兴趣的:(Java之类的主动使用和被动使用)