static关键字的使用以及静态方法的执行顺序详解

static所修饰的代码块的特点:上交国家,归类所有,不归任何对象所有
上交国家:所有方法共享方法和域
在这里插入图片描述

主要作用:方便在没有对象的时候调用方法

  1. static修饰的是独一份的东西,所以无论通过什么来修改static修饰的东西,其他使用该变量的其值都会改变

  2. 静态方法当中不能直接使用非静态方法,想使用的话需要导一个类出来:
    在这里插入图片描述

  3. 类加载的目的是创造对象

  4. static修饰的代码块都是在main类中执行的,是最早创建的一批空间(在创建类是顺带啊执行),可以用于构造方法之前执行进行初始化

  5. 属于类的东西,类加载就会执行;构造方法在new对象的时候执行;子类的构造方法啊里默认有一个super(),用于执行父类的无参构造方法

  6. 类只会加载一次,因此父类加载时如果通过static等已经输出过东西,通过子类调用父类时不会再输出一次该东西

  7. 静态方法 类方法 static修饰的方法

    非静态方法 对象方法 不用static修饰的方法

static修饰方法执行顺序例子:
在这里插入图片描述

输出流程:先执行父类Base的static修饰的代码块,然后执行子类static修饰的代码块,static执行完毕后,执行子类main方法发,new方法名以调用子类构造方法,但是由于默认super()存在,因此先调用父类构造方法,最后调用子类构造方法中的代码

static修饰方法执行顺序例子2
在这里插入图片描述
输出流程:先由上而下执行,Test类中由于没有newTest(),因此不执行成员属性赋值语句,只执行static,之后执行main方法,出现new MyClass(),执行static代码块,由于有父类Test,因此在person成员属性赋值之前使用默认super()方法转而调用Test,由于类只创建一次,因此Test中Static不会二次执行,执行person成员属性赋值语句,出现new Person(),调用Person方法,优先调用static代码块,之后执行有参数的构造方法,person调用完毕,执行Test无参构造方法,之后MyClass中super()执行结束,执行new Person赋值,再次调用Person类,输出后调用Mysql构造方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值