您的位置:首页 > 其它

JVM体系结构--堆

2015-12-22 17:12 357 查看

主要作用

储存java程序在运行时创建的所有类实例或者数组

主要特点

内存不连续;程序独占,互不干扰;线程共享,同步访问

主要技术

垃圾回收

程序只负责分配内存,回收内存需要jvm的垃圾收集器

对象的表示

所谓的对象,就是所属的类及其所有超类声明的实例变量组成,通过对象引用完成数据的快速定位,常用的两种表示法:

句柄池+对象池表示法



直接表示法

这种方式就是只使用一个指针,只由一个指向类数据的指针和实例数据构成。优点就是不需要两次指针传递,缺点就是对象的移动变得复杂

java的多态,上塑和下塑

对象的引用改为之前类的超类,也就是向上转型称为上塑;反之,就为下塑。上塑是必然成立的,但下塑却不一定。通过instanceof可进行判定。

这两种情况都是为多态服务的,因为在实际的程序中,使用某个实例都是进行的动态绑定。

方法表

方法表的主要作用是便于更快地访问到对象。类似于C++中的VTBL对象虚拟表(对象由实例对象和虚函数指针构成),JVM中使用的原理类似,但是考虑到内存,便将所有对象都放在一张表中。

对象锁

JVM中每个对象都有对象锁,为了进行多线程的同步

数组的内部表示

所有的具有相同维度和类型的数组都是用一个类的实例。数组类表示为”[I”表示为一个一维的int数组。数组的长度,数据和指向类数据的指针都保存在堆上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: