programming for java virtual machine note

本文介绍了JVM的四个概念性数据空间:类区域、Java堆栈、堆和本地方法堆栈。深入探讨了特殊方法<clinit>的作用及验证算法如何确保加载到JVM中的类文件遵循特定规则,防止程序访问未经授权的字段和方法。

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

JVM is devided into four conceptual data space:

class areas: the code and the constant are kept

java stack: which keep track of which the method has been called and the  data associated with each method invocation

heap: the object are kept

Native method stack: for support mative method

 

Oolong is a assembly language for java virtual machine

 

There is a spacial method named <clinit> that is used to initialize the class as a whole, It's often used to initialize static fields. The <clinit> method taked no arguments and return nothing. It's called by JVM when class is loaded. There is no need for you to call it.

 

The verification algorithm is to ensure the class file that are loaded into machine follow certain rules. Those rules guarantee the programm can not gain access the fields and methods that they are not allow to access and they can not otherwise trick the JVM into doing unsafe things. The verification algorithm is applied ot every class as they are loaded into the system. before the instences are created or the static properties are used.

 

class load can take place in two phases, loading and link

After loading, the virtual machine know the name of the class, where it fit into the class hierarchy, and what fields and methods is has.

In the second phase, called linking or resolution,the class is verified to ensure it is well formed and don't try to violate the any the virtual machine's safe constraints. then the static initializer <clinit> is invoked. After linking, the class is ready to use.

The two-stage process allows classes to reference to one another whithout causing infinite loops when two class reference each other.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值