美文网首页
static修饰符介绍

static修饰符介绍

作者: 放开好人 | 来源:发表于2020-10-31 10:46 被阅读0次

    1. static可以修饰的内容?

    • 可以修饰类变量及方法,随着类加载而加载,不需要创建实例即可获取。
    • 可以修饰代码块,同修饰变量及方法。
    • 可以修饰类,只能是静态内部类。

    2. 其他

    • static修饰的变量或方法属于类的静态资源,所有新建的实例共享。
    • 静态方法内部不能调用非静态方法,加载顺序不一致。静态资源在类创建时即建立好,非静态方法是在new实例时才进行创建。
    • 修饰变量,等同于变量变成了内存地址,无论new多少对象,都是公用一个地址。
    • 静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
    • 类下面可以有普通类变量及静态类变量,普通类变量需要new对象来获取,而静态类变量只能通过类点的方式。
    • 普通类变量每次new对象都会重新赋值,而静态类变量不需要new,故一处改变全局改变。

    3. static代码块与普通代码块及构造函数的加载顺序。

    package com.fangk.juc;
    class Parent{
        {System.out.println("父类普通代码块");}
        static {System.out.println("父类静态代码块");}
        Parent(){System.out.println("父类构造方法");}
    }
    class Children extends Parent{
        {System.out.println("子类普通代码块");}
        static {System.out.println("子类静态代码块");}
        Children(){System.out.println("子类构造方法");}
    }
    public class TestNne  {
        public static void main(String[] args) {
            Children children1 = new Children();
            System.out.println("============");
            Children children = new Children();
        }
    }
    输出结果如下:
    父类静态代码块
    子类静态代码块
    父类普通代码块
    父类构造方法
    子类普通代码块
    子类构造方法
    ============
    父类普通代码块
    父类构造方法
    子类普通代码块
    子类构造方法
    

    4. 静态内部类

    待写

    相关文章

      网友评论

          本文标题:static修饰符介绍

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