Static关键字

Static修饰的变量

在Java中属性和方法的分类:

实例属性和实例变量(没有被static修饰):必须通过实例化的对象对其调用才能使用(对其赋值,初始化)重点内容
类变量和类方法(被static修饰):属于类而不属于某个特定的对象,无需对象调用,类名调用即可。在初始化类时,即被初始化。

从分配空间的角度讲

类加载到JVM编译时,如果当前类有static修饰的变量和方法,被加载到jvm同时,在类所占的空间中会对static修饰的变量和方法进行初始化和分配空间。而实例属性和实例方法并没有被分配空间。当类初始化一个对象时,在类中的空间,分配一定的空间给对象。并在此对象中为实例变量及方法分配空间。
所以,static修饰的变量和方法,与类初始化对象的空间在同一等级位置。所以它并不属于任何一个对象,而属于类static变量相当于于全局变量*可以通过类名直接调用(可以对象调用,但不建议)不管创建了多少个对象,类变量所占空间只有一个*。

静态方法

在静态方法中只能访问静态的属性和方法
可以通过对象实例化调用非静态属性和方法
在非静态方法中可以访问静态方法和属性
在静态方法中无法使用this和super关键字
静态方法不能被重写为非静态方法

静态代码块

在类中可以使用不包含任何方法中的静态代码块(static block),当类被JVM载入时,静态代码块被执行,且被执行一次。

作用:静态代码块初始化静态成员变量

语法

静态代码块:
static{}
按照代码块顺序执行

static int num;
    static String name;
    static{
        num=100;
        name="zhangsan";
    }  //不写入任何方法当中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值