Java中static关键字

static关键字学习

static代表静态,static修饰的内容称为静态内容
  1. static修饰的内容
    • 属性
    • 方法
    • 代码块:没法调用,只能自动执行
      • 非static修饰的代码块在对象创建之前执行,每创建一个对象非静态代码块执行一次
      • static修饰的静态代码块在类加载的时候就执行了,而且只执行一次
    • 内部类:调用方式只有一种(new 外部类.内部类(参数列表))
    属性和方法只会在内存中存在一份,调用的使用有两种方式。1、通过类的对象来调用(不建议)2、通过类名或者接口名来调用(建议)
    
Java代码内存中运行的流程:
Java代码在运行的时候,先通过类装载(加载)器将.class文件加载到内存中的元数据区(方法区),下一步在堆区创建对象,然后在虚拟栈区调用方法执行代码。
  1. static修饰的内容称之为静态内容(也称之为类内容),就是因为static修饰的内容在类加载时期在堆区(方法区)就创建好了,而且这些静态内容只会执行一次,而且静态内容在内存中只存在一份

  2. 非static修饰的内容在Java对象创建的时候才去在堆区创建,而且非static修饰的内容在内存中存在n份

  3. 完整的包含静态与非静态内容在内存中的画法
    完整的包含静态与非静态内容在内存中的画法

  4. static的注意事项

    • 1、static修饰的内容无法调用类中非static修饰的内容
    • 2、非static修饰的内容可以调用类中static修饰的内容
    • 3、static修饰的内容中无法使用this和super关键字
    static的内容在类加载的时候就存在,非static的内容是随着Java对象的创建才存在的.
    static的内容在内存存在的时候,非static的内容不一定在内存中创建.
    
    this和super关键字是当Java类的对象在创建的时候在当前对象的堆内存中会声明这两个关键字,其中this关键字指向当前对象,super关键字指向的是我们的父类对象空间。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值