Java面试问题之七

Java虚拟机在类的加载、连接和初始化阶段都做了哪些工作?

答:(1)加载阶段:查找并加载类的二进制数据。
(2)连接阶段:包括验证、准备和解析类的二进制数据。
验证:确保被加载的类是正确的。
准备:为类的静态变量分配内存,并将其初始化为默认值。
解析:把类中的符号引用都替换成直接引用。
(3)初始化:给类的静态变量赋予正确的初始值。

在类或接口被加载和连接的时机上,Java虚拟机规范给实现提供了一定的灵活性,但是它
严格定义了初始化的时机,就是所有Java虚拟机实现必须在每个类或者接口被Java程序“首
次主动使用”时才初始化它们。([color=red]Java程序对类的使用方式有两种:主动使用和被动使用[/color])


——解答摘自《Java面向对象编程》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值