美文网首页Java 杂谈心流力量
static修饰的代码在类加载的时候不一定会加载

static修饰的代码在类加载的时候不一定会加载

作者: 大黑跟小白的日常 | 来源:发表于2019-01-20 22:49 被阅读0次

类中static修饰的代码在类被加载的时候不一定会加载

我们可以说A类被加载时,A类自己的static{}一定会被加载;

但不能说A类被加载时,A类中static{}都会被加载;

有一种情况就不会被加载,A类中的内部类A$B类的static{},在A类被加载时,就不会被加载;(不管静态内部类是public还是private都一样)

这里文字游戏,玩了一波,抱歉

请往下看

内部内及一些用于测试的方法 逐一测试

我们看到,如果不触碰内部类相关的东西,内部类就不会被加载,它的static{}也不会被执行。并且它的加载是可以保证线程安全

这也是一种,非常具有代表性的单例模式的实现方式。既可以实现延迟加载单例的目的,又能达到线程安全的实例化标准。

内部类被加载时,内部类自己的static修饰的代码都被加载

内部类被加载

内部类被加载时,加载的是自己的静态代码块,如果内部类的静态成员属性跟外部类没关系,都不会加载外部类静态资源。

相关文章

  • static修饰的代码在类加载的时候不一定会加载

    类中static修饰的代码在类被加载的时候不一定会加载 我们可以说A类被加载时,A类自己的static{}一定会被...

  • static修饰符介绍

    1. static可以修饰的内容? 可以修饰类变量及方法,随着类加载而加载,不需要创建实例即可获取。 可以修饰代码...

  • Day8关键字static,单例设计模式(P66~P72)

    关键字static 在Java类中,可用static修饰属性、方法、代码块、内部类;被修饰后的成员将-随着类的加载...

  • static的其他用处

    static 除了修饰方法类,成员变量之外可以修饰代码块且当类被加载的时候会依次执行对应的代码块.且只会在类中被加...

  • 2019-03-19

    static 既可以修饰成员变量 又可以修饰方法 使用static修饰的成员 是随着类的加载而加载的 不属于任何一...

  • static用法笔记

    static,修饰静态变量,静态方法,静态代码块。 1、用途: 随着类的加载而加载优先于对象存在被所有对象所共享可...

  • static变量,static代码块,构造函数,代码块等的加载顺

    运行结果: 在类加载阶段,先顺序执行static变量的赋值 顺序执行static代码块(static代码块只有在类...

  • Java的static、final关键字

    一、 static关键字 可以修饰成员变量和成员方法 static关键字特点随着类的加载而加载优先于对象存在被类的...

  • 一个JAVA的初学者

    static(静态):被它修饰的可以通过类名直接调用,同时会随着类的加载而加载,并且只会加载一次。方法可以...

  • static关键字及变量类型特点的对比

    1、static修饰的变量叫"静态变量" 2、static修饰的方法叫"静态方法" 3、定义静态语句块:在类加载阶...

网友评论

    本文标题:static修饰的代码在类加载的时候不一定会加载

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