• java的static研究


    (1)static关键字:可以用于修饰属性、方法和类。

    1,属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一的一份静态的成员变量(不能修饰临时变量

    2,方法:static修饰的方法叫做静态, 对于静态方法来说,可以使用类名.方法名的方式来访问。不能重写(Override)

    3,static代码块:静态代码块。静态代码块的作用也是完成一些初始化工作。  首先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行,而构造方法在生成对象的时候执行;

    顺序讲得很通透:https://www.cnblogs.com/study-everyday/p/6752715.html#autoid-0-0-0

    static过程的小图解:https://www.cnblogs.com/xdp-gacl/p/3637407.html

    最后加强理解,标准的图解和例题:https://blog.csdn.net/wang_1997/article/details/52267688

    在static下加载的规则:

    加载class过程:

    父类static成员变量/static代码块/静态方法(书写顺序)-》子类static成员变量/static 代码块/静态方法-》static成员变量默认初始化(0啊这些)-》static成员变量显式初始化(就是new自身看清楚赋值没有)-》执行父类的static代码块-》执行子类的static代码块

    实例化过程:

    非静态成员默认初始化-》隐式调用父类的super()-》显示初始化非静态成员变量-》构造块的代码-》构造函数

    总结:赋值,代码块

    https://blog.csdn.net/wang_1997/article/details/52267688   例题理解:

    1,就是按照我上面的顺序

    2,在静态成员变量初始化-》静态成员变量显示初始化的过程中,new了自己,调用了一些静态成员变量,要注意他们现在只是初始化,并没有赋值,这道题的陷阱就是两个过程交错在一起

    3,还有一点就是实例化的时候,不负责(不用理会静态成员变量的初始化)

  • 相关阅读:
    计算机视觉
    深度学习2
    pytorch
    Django笔记
    深度学习
    numpy&pandas
    信息安全与密码技术
    Win10 alt+f4默认关机修改
    (转)Spring Boot 解决跨域问题的 3 种方案
    用 alibaba 的 fastjson 将 list 或 map 转为 json 字符串
  • 原文地址:https://www.cnblogs.com/vhyc/p/9282003.html
Copyright © 2020-2023  润新知