美文网首页
JVM之类加载器

JVM之类加载器

作者: 书唐瑞 | 来源:发表于2020-11-14 21:17 被阅读0次
    public class Example {
        private static Example obj = new Example();
        static int v1;
        static int v2 = 0;
    
        private Example() {
            v1++;
            v2++;
        }
    
        public static Example getInstance() {
            return obj;
        }
    
    
        public static void main(String[] args) {
            Example obj = Example.getInstance();
            System.out.println(obj.v1);
            System.out.println(obj.v2);
        }
    }
    

    在我的语雀文章之JVM中讲到了类加载时机和类加载过程.
    根据理论,我们分析上面的测试代码,最终结果是什么?

    加载-链接-初始化
    在链接阶段,又分为验证-准备-解析阶段,在准备阶段,会为静态变量分配内存和赋零值.
    v1=0,v2=0
    在初始化阶段,又会为静态变量赋值.

    静态代码从上向下执行

    在执行Example obj = new Example();执行构造器,因此v1=1,v2=1
    继续执行
    static int v1;
    static int v2 = 0;
    因此最后v1=1,v2=0

    公众号: Netty历险记

    相关文章

      网友评论

          本文标题:JVM之类加载器

          本文链接:https://www.haomeiwen.com/subject/shtgbktx.html