java基础之static

    1.  static可以修饰成员变量,成员方法,代码块和内部类,不能修饰顶层类和构造方法。

    2.  static修饰的成员变量称为类变量,归属于类;在加载类的时候分配内存和初始化,存放在方法区内;通过类名(全路径)访问该类方法区内的static变量;表现为被所有实例共享,实际上是因为单独处于方法区内;在编译时确定,属于静态绑定。

    3.  没有static修饰的成员变量称为实例变量,归属于具体实例;在创建实例对象时分配内存和初始化,存放在堆内;通过引用变量指向的堆内的实例对象访问;是属于单个实例,处于每个实例变量独有的一块堆内存;在编译时确定,属于静态绑定。

    4.  static修饰的成员方法称为类方法,其余的称为实例方法。类的方法字节码都存在于方法区内,区别在于类方法通过类名(全路径)访问,在编译时确定,属于静态绑定;而实例方法通过引用变量指向的堆内的实例对象类型决定访问对应类的方法,在运行时确定,属于动态绑定(多态)。因为是静态绑定,从而解释了静态方法只能被子类隐藏而不能被覆盖的原因。

    5.  静态代码块同样在类初始化时调用,用于更加复杂逻辑的类变量初始化,类似于实例对象用构造方法进行实例变量的初始化。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值