当前位置:数据分析 > Java中static的介绍

Java中static的介绍

  • 发布:2023-09-26 11:47

static

1.static:静态的

2.static用来修饰:属性、方法、代码块、内部类

3.static用来修饰属性:

  • 3.1 在类中声明的属性分为:static修饰的:静态变量、类变量

    非static修饰的:实例变量

  • 3.2 静态变量在内存中只有一份,被类的多个对象所共享。

    如果类的一个对象对共享的静态变量进行修改的话,会导致其他所有的对象调用此静态变量,也是修改过的。

    对比:实例变量,在内存中每个对象一份。当通过对象a修改此实例变量时,不会影响其他对象此变量的值。

  • 3.3 实例变量:存储在堆空间中

    静态变量:方法区的静态域中

  • 3.4 实例变量,随着对象的创建而加载。每个对象一份。

    静态变量,随着类的加载而加载。内存中只有一份。

  • 3.5 静态变量的加载要早于对象的创建。

  • 3.6

是否可以直接调用静态变量实例变量
yesno
对象yesyes

上述的解释都从生命周期的角度来看即可:后出生的可以调用已经加载的。

  • 3.7 Math.PI 或 System.out

  • 3.8 开发中,类中的属性如何判断需要加上static修饰呢?

    是否需要当前类的多个对象共享唯一的一个属性。如果是,那就使用static修饰。

    类中的常量习惯使用static修饰。

4.static用来修饰方法:

  • 4.1
是否这可直接调用静态方法实例方法
yesno
对象yesyes
  • 4.2 静态方法随着类的加载而加载。

    比如:Math.round() Math.random() Math.sqrt() Arrays.sort() Arrays.binarySearch() …

  • 4.3 静态方法内不能调用非静态的结构,可以调用静态的结构:属性或方法

    非静态的方法内可以调用静态的结构和非静态的结构:属性或方法

  • 4.4 开发中,类中的方法如何判断需要加上static修饰呢?

    通常,工具类中的方法都是静态方法

    通常方法内如果操作静态变量,则此方法一般声明为静态的。

5:在静态方法中不能使用this和super关键字(因为当时对象还没创建)

相关文章