java类加载过程(更新中)

本文深入解析Java类的生命周期,重点讲解连接阶段中的准备步骤。详细阐述了类变量如何在方法区分配内存并设置初始值,以及在不同情况下的初始化过程。

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

部分摘抄自:https://blog.youkuaiyun.com/qq_36522306/article/details/80584595

目录

2. 连接:

(2)准备:


我们知道java中类的生命周期为装载连接初始化使用卸载五个过程,如下图所示:

 

2. 连接:

(2)准备:

1. 准备阶段是正式为类变量(static修饰)分配内存并且设置初始值多阶段,这些变量所使用的内存将在方法区中进行分配。

2. 实例变量将会在对象实例化多时候随着对象一起分配在java堆中。

3. 初始值通常情况下是数据类型的零值,假设定义:

 public static int value = 123;

那么value在准备阶段后的初始值为0,而不是123,把value赋值为123的动作在初始化时才会执行。

如果类变量存在ConstantValue属性,那么在准备阶段value就会被初始化为ConstantValue属性所指定的值,比如:

public static final int value = 123;

编译时javac将会把value生成ConstantValue属性,在准备阶段虚拟机将会根据ConstantValue的设置将value赋值为123.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值