• 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,还有一点就是实例化的时候,不负责(不用理会静态成员变量的初始化)

  • 相关阅读:
    通过pwndbg看看c中局部变量是如何在stack上放置的 此外 printf %n的作用终于弄明白了
    pip 安装过慢 使用清华源 加速
    mac 10.15.6 安装 IDA
    使用机器学习检测命令行混淆
    安全技能树简版
    栈溢出 hack 入门例子 hello world
    201116西瓜书机器学习系列---8、集成学习
    legend2---某些js代码电脑浏览器支持,手机浏览器不支持的调试
    legend2---做题页的每个题目对应的答案重点标颜色
    legend2---jquery重新渲染某元素
  • 原文地址:https://www.cnblogs.com/vhyc/p/9282003.html
Copyright © 2020-2023  润新知