美文网首页大数据理论
Java之static关键字

Java之static关键字

作者: 喵感数据 | 来源:发表于2020-03-04 16:09 被阅读0次
    static 关键字

    static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。

    static关键字主要作用是修饰 把方法、属性、语句块、类(只能修饰内部)类修饰成静态

    静态的有何含义 ?
    静态的元素:优先被加载且只被加载一次。静态还有一层含义是共享,静态的元素一旦加载,那么在内存中不会消失,直至程序结束。(如非必须 那么不定义)。注意:静态的元素依附类 (非静态元素依附对象)

    静态元素使用特性 ?
    静态的成员可以直接 以类名.方法或类名.属性的方式使用,无需创建对象。

    在静态的成员中不可以访问非静态元素;非静态的成员可以访问静态元素,也可以访问非静态元素。静态成员只被加载一次,只会分配一次空间,只产生一份。

    static 修饰属性

    static 修饰的属性,又叫做类属性、静态属、类变量、静态字段等。
    特性:只有一份 本类的所有对象共享这一个属性

    如何使用:
    方式1: 类名.属性名
    方式2: 对象名.属性名

    static 修饰方法

    static 修饰方法,又叫静态方法或类方法。
    特性:只有一份 本类的所有对象共享这一个方法

    如何使用:
    方式1: 类名.方法名
    方式2: 对象名.方法名

    static 修饰代码块

    static修饰代码块,又叫静态代码块。
    特性:优先加载且只加载一次。

    那么代码块何时执行呢 ?
    new 对象时执行,每new一个 执行一次。代码块可以有多个,执行顺序右上到下依次执行。

    代码的作用 ?

    普通代码块 : 可以给属性赋值。基本上都是构造器赋值,但是有时会出现没有或者不能有构造器的时候。

    静态代码块 :主要是加载一些程序执行的环境。
    注意:static不可以修饰局部变量 ,因为和static的设计理念冲突,局部变量被调用一次变量要声明一次,而static修饰的只能加载一次,加载机制冲突。static永久存在,局部变量方法结束就没了。

    类的加载?

    要使用类 ,那么必须把类信息加载到内存里。把静态元素加载到静态区,其余加载到类信息区。静态的元素优先被加载,加载时就分配了空间;非静态的元素创建对象时才会给元素分配空间。

    类的成员必须分配空间才能使用、非静态元素必须创建对象才能用,而静态元素可以直接使用。

    类什么时候被加载 ?
    当类被使用的时候就会加载,类只被加载一次,而且jvm 提供了预加载机制。

    什么是预加载机制?
    就是jvm可以提前加载要用的类

    相关文章

      网友评论

        本文标题:Java之static关键字

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