为什么不创建对象就可以使用静态方法(类方法)

(1)对象的初始化过程(创建对象的过程 例: P p = new P())

  1. 类加载:当程序第一次使用到某个类时,Java虚拟机会加载该类的字节码文件,并对类进行解析和验证

  2. 分配内存

  3. 初始化默认值

  4. 执行构造器

  5. 返回对象的引用

通过上述对象初始化过程可以知道 类加载 对象初始化 是两个概念

对象初始化一定有类加载,但是类加载不一定会对象初始化

(2)静态方法不需要创建对象就能调用,这是因为静态方法属于类而不是对象。

       在Java中,静态方法是属于类的方法,而不是属于特定的对象实例的方法。当类加载到内存中时,静态方法也会加载到内存中。因此,可以直接通过类名来调用静态方法,而不需要先创建类的实例。

       静态方法通常用于执行通用的、与特定实例无关的操作,例如数学计算、工具方法等。

(3)类什么时候加载

类加载是由Java虚拟机(JVM)在运行时根据需要进行的操作。类会在下列情况下被加载:

  1. 首次创建类的实例:

  2. 静态方法/静态变量访问:如果直接引用了类的静态成员(如静态方法或静态变量),JVM会加载并初始化该类。这时只有类的静态成员被加载,而不会创建类的实例。

  3. 类被反射调用:

(4)关于普通方法的使用

 在Java中,类加载的过程包括加载、连接(验证、准备和解析)和初始化。在此过程中,类的普通方法(非静态方法)并不会被直接加载。

类的普通方法是属于类的实例的方法,只有在创建对象实例时才会在内存中为对象实例分配相应的内存空间,并将方法的代码加载到该实例的方法区中。当对象实例化后,可以通过对象来访问和调用类的普通方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值