• static修饰符


    在java语言中,没有实际意义上的全局变量。变量最大的作用域范围就是类。如果两个类或多个类之间需要共享数据,单纯依靠参数进行传递,就会花费大量的代码去完成。

    实际上,完全可以利用java语言静态变量实现 数据的共享。在java语言中,被static关键字修饰的块、方法和变量被称为静态块、静态方法、静态变量。静态变量和静态方法

    可以直接通过类名来访问。静态代码块,当java虚拟机加载类时,就会执行该代码块。静态变量(也叫类变量)和静态方法归某个类所有,不依赖于类的特定实例,被类的

    所有实例共享,只要这个类被加载,java虚拟机就能根据类名在运行时数据区的方法区内定位到它们。

    静态变量和实例变量的区别:

    • 静态方法在内存中只有一个拷贝,运行时Java虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。可以直接通过类名访问静态方法。
    • 对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响。

    使用静态方法时,应注意下面3个原则:

    • 类的静态方法只能访问其他的静态成员;
    • 静态方法不能使用this和super;
    • 静态方法不能被覆盖为非静态方法。
    • 静态方法内部使用非静态成员变量,否则将出现语法错误。

    静态代码块 指位于类声明的内部,方法和构造方法的外部,使用static修饰的代码块。静态代码块在该类第一次被使用时执行一次,以后再也不执行。

  • 相关阅读:
    [UVA100] The 3n + 1 problem.题解
    [SP1] TEST
    LCA【模板】
    [P1000] 超级玛丽游戏.题解
    [P3367]【模板】并查集.题解
    并查集【模板】
    洛谷 P1890 【gcd区间】
    浅谈分块算法经典问题&优化
    Floyd算法详(cha)解
    逆序对
  • 原文地址:https://www.cnblogs.com/zheting/p/7751764.html
Copyright © 2020-2023  润新知