面向对象基础篇 - static关键字 (静态)

面向对象基础篇 - static (静态)

方法区:

  • 静态方法区
  • 非静态方法区

输入JVM内存中的一部分(堆,栈),主要用于存放编译好的 字节码文件

静态变量 :
  • 代码: 成员变量被 static 关键字修饰

    //例如:
    class Demo{
        static int a;
        static double b;
        static String c ;
    }
    
  • 含义:对象之间的共有属性

    //例如:
    //对于西安欧鹏的学员来说,属性:辅导机构都是欧鹏
    //那么此时,我们就可以将这个属性定义为静态属性
    class OpStudent{
        static String institution ="西安欧鹏";
    }
    
  • 存储位置:

    ​ 对于由static 关键字修饰的属性,我们将其理解为类所描述的所有对象的共有属性,按常理来说,我们应该将这个属性存放在对象内存中,但是因为他是共享属性,为了节省空间,我们将这一属性提取出来,放到一个专门存放静态属性的地方,让对象从这个位置来调用它,

    ​ 这个位置就是-------------静态方法区

  • 与普通成员变量的区别:

    • 普通成员变量:

      • 生命周期:对象的创建而诞生,随着对象的消亡而消亡
      • 存储位置:存储在堆内存中相应对象的空间里
      • 调用方式: 类的内部成员函数可以通过属性名或this.属性名直接调用,类的外部可以在创建对象之后,通过对象来调用
    • 静态属性

      • 生命周期:随着类的加载诞生,随着类的卸载而消亡

      • 存储位置:静态方法区中,为相应类开辟的空间里

      • 调用方式:类的内部静态/成员函数都可直接调用,在函数的外部,可以在创建对象后通过对象来掉用,也可以直接使用 类名.属性 来调用

静态函数:

  • 代码:成员函数被static关键字修饰

    //例如:
    public static void main(String[] args){
        
    }
    
  • 使用:当这个成员函数内部不会直接调用成员变量/函数时,就可以定义为静态函数

  • 内存:静态方法区

静态函数内部不存在 this 指针,

静态代码块:

  • 代码:在类的内部,使用static 修饰的{ }

    class Demo{
        static{
            System.out.println("我是静态代码块!");
        }
    }
    
  • 作用:在对象创建之前对对象做一些初始化

静态:

静态修饰的属性和方法,是优先于对象加载的,优先于其他属性和方法被加载进内存。

并且对于多个对象来说,静态属性和方法只加载一次

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值