JAVA虚拟机实例学习笔记二
11.数组
数组也是类的对象。具有相同类型和维数的数组属于同一个类(不管长度只看维数)。数组的长度属于对象实例。多维数组也是一维数组。如二
维数组,即为一个一维数组,该一维数组的每个元素是一个数组的引用。数组和普通对象一样也存储在堆中。
数组名为数组的引用,通过索引即数组标号来访问数组内容。
12.异常
在java栈帧的帧数据区内保存有针对该方法的异常表的引用。异常表记载了该方法的字节码(*.class)受catch子句保护的范围(即try子句里的
字节码)。当某个方法抛出异常时,虚拟机在对应的异常表中寻找匹配的catch子句,并将控制权交给catch子句中的代码。
13.java执行引擎
实现平台无关性,以java方法帧里的操作数栈为中心,将局部变量数组当作cpu的寄存器。每操作一个数据都要压人操作数栈,然后返回至局部
变量区。java虚拟机规定强类型转换,即低精度可以隐式转换到高精度,高精度必须强制转换到低精度。
14.线程
线程即存在于进程中的某个执行体。
每个线程必须遵守对象锁定,线程等待和通知。
对象锁定使线程互斥的访问对象资源。等待和通知则是遵守线程合理调度以达到同一个目的。java对象通过指令集达到上锁目的,同过继承
object类的wait(),notify(),notifyall()方法来等待和通知。当某个线程调用某个对象的wait()方法时,该线程被阻塞,并加入到该对象的线
程阻塞队列中,直到另一个线程调用同一对象的通知方法,才能唤醒阻塞队列中的线程。
Tag: JAVA虚拟机
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。