首页 > 其他 > 详细

JVM 主动类和被动类的使用

时间:2019-06-07 22:18:32      阅读:122      评论:0      收藏:0      [点我收藏+]

主动使用和被动使用Demo

1、创建工程一个Gradle工程

技术分享图片

下一步

技术分享图片

下一步

技术分享图片

点击完成

 

2、创建类

public class MyTest1 {


    public static void main(String[] args) {
        System.out.println(MyChild1.str);
    }
}


class MyParent1{
    public static String str = "hello world";

    static {
        System.out.println("MyParent1 static block");
    }
}

class MyChild1 extends  MyParent1{
    static {
        System.out.println("MyChild static block");
    }
}

  输出结果:

MyParent1 static block
hello world

  会发现MyChild1的类静态块没有执行。

  总结:对于静态字段来说,只有直接定义了该字段的类才会被初始化。

 

 修改后的类:

public class MyTest1 {


    public static void main(String[] args) {
        System.out.println(MyChild1.str2);
    }
}


class MyParent1{
    public static String str = "hello world";

    static {
        System.out.println("MyParent1 static block");
    }
}

class MyChild1 extends  MyParent1{

    public static String str2 = "hello world 2";

    static {
        System.out.println("MyChild static block");
    }
}

  执行结果

MyParent1 static block
MyChild static block
hello world 2

 因为使用到了MyChild的类,它会被初始化。当一个类在初始化时,要求其父类全部都已经初始化完毕。最终打印结果如上面所示。 

 

3、上面1中,MyChild1没有被实例化,那MyChild类是否有被加载?

-XX:+TraceClassLoading, 用于追踪类的加载信息并打印出来
配置如下:

技术分享图片

完整的代码

public class MyTest1 {


    public static void main(String[] args) {
        System.out.println(MyChild1.str);
    }
}


class MyParent1{
    public static String str = "hello world";

    static {
        System.out.println("MyParent1 static block");
    }
}

class MyChild1 extends  MyParent1{

    public static String str2 = "hello world 2";

    static {
        System.out.println("MyChild static block");
    }
}

  

 

打印的结果

技术分享图片

说明MyChild类也会被加载, 最先加载的是MyTest1类

 

JVM参数

-XX:+<option>, 表示开启option选项

-XX:+<option> 表示关闭options选项
-XX:<option>=<value>, 表示将option选项的值设置为value

 

 

JVM 主动类和被动类的使用

原文:https://www.cnblogs.com/linlf03/p/10989141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!