java面向对象-static静态关键字

本文深入解析Java中的静态关键字特性,包括静态成员变量、静态方法、类变量与实例变量的区别,以及局部代码块、构造代码块和静态代码块的执行时机与应用场景。探讨静态成员的存储方式、生命周期及访问限制,帮助读者理解静态在Java中的作用与限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.static静态关键字
    静态的特点:被static修饰的成员变量属于类,不属于这个类的某个对象。
            被static修饰的成员可以并且建议通过类名直接访问    
            类名.静态成员变量名
            类名.静态成员方法名(参数)
            静态的加载优先于对象,随着类的加载而加载
    
静态的注意事项:
        静态成员只能直接访问静态成员
        非静态成员既可以访问非静态成员也可以访问静态成员
  
 静态的方法中是否有this这个对象?没有的
    静态优点:
        对对象的共享数据提供单独空间的存储,节省空间,没有必要每一个对象都存储一份
        可以直接被类名调用,不用在堆内存创建对象
        静态成员可以通过类名直接访问,相对创建对象访问成员方便
    
静态弊端:
        访问出现局限性。(静态虽好,但只能访问静态)
    
静态的应用:
        Math类的使用

2.类变量与实例变量辨析
    类变量:其实就是静态变量
    
定义位置:定义在类中方法外
   
所在内存区域:方法区
    
生命周期:随着类的加载而加载
  
 特点:无论创建多少对象,类变量仅在方法区中,并且只有一份


    实例变量:其实就是非静态变量
    
定义位置:定义在类中方法外
   
所在内存区域:
   
生命周期:随着对象的创建而加载
   
特点:每创建一个对象,堆中的对象中就有一份实例变量

3.局部代码块
    局部代码块是定义在方法或语句中
    方法和类都是以代码块的方式划定边界的

4.构造代码块
    构造代码块是定义在类中成员位置的代码块
    优于构造方法执行,用于执行所有对象均需要的初始化动作
    每创建一个对象均会执行一次构造代码块

5.静态代码块
    静态代码块是定义在成员位置,使用static修饰的代码块
    优先于主方法执行、优先于构造代码块执行
    该类不管创建多少对象,静态代码块只执行一次
    可用于给静态变量赋值,用来给类进行初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值