java静态成员变量静态方法 和普通成员变量 普通方法存在JVM哪个区域

Java静态成员变量和静态方法以及普通成员变量和普通方法在JVM中存在不同的区域。

  • 对于静态成员变量和静态方法,它们的存储区域是方法区(Method Area)。方法区是一块用于存储类的结构信息、静态变量、常量、编译后的代码等的内存区域。静态成员变量在类加载时被初始化,存储在方法区中。静态方法也在方法区中存储,且不依赖于类的实例。

  • 普通成员变量和普通方法存储在堆内存(Heap)和栈内存(Stack)中。

  • 普通成员变量在对象实例化时分配在堆内存中的对象实例中。每个对象实例都有自己的一组实例变量,存储在堆内存中。

  • 普通方法的字节码被加载到方法区中,但方法的执行是在栈内存中进行的。每个线程都有自己的栈,栈中包含了方法的调用栈帧,用于存储局部变量和方法调用的相关信息。

  • 需要注意的是,静态成员变量和静态方法的生命周期与类的生命周期一致,而普通成员变量和普通方法的生命周期与对象实例的生命周期相关。

总结:

  • 静态成员变量和静态方法:存储在方法区。
  • 普通成员变量:存储在对象的堆内存中。
  • 普通方法:方法的字节码存储在方法区,方法的执行在栈内存中进行。
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值