JAVA虚拟机体系结构

JAVA虚拟机体系结构

        

 

       当java虚拟机运行一个程序时,它需要内存来存储许多东西,如,字节码,从已装载的class文件中得到的其他信息,程序创建的对象,传递给方法的参数,返回值,局部变量,以及运算的中间结果等等。java虚拟机把这些组织到几个“运行时数据区”。

1、方法区(当虚拟机运行java程序时,会查找在方法区中的类型信息)

             由于所有线程都共享方法区,因此它们对方法区数据的访问是线程安全的,如两个线程同时访问里面的L这个类,只有一个线程区装载,另一个需等待。方法区的大小不必时固定的,虚拟机可以根据应用的需要动态调整。方法区也不必时连续的,方法区可以在一个堆(甚至是虚拟机自己的堆)中自由分配。方法区可以被垃圾收集。

            方法区又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量

      1)存储已被虚拟机加载的类信息(包括这个类型的全限定名,直接超类的全限定名,是类类型还是接口类型,访问修饰符(public,abstract),任何直接超接口的全限定名的有序列表。)

        2)常量(常量池)、

                  ----虚拟机必须为每个被转载的类型维护一个常量池。常量池就是该类型所用常量的一个有序集合,

                        包括直接常量(string,integer和floating point常量)和对其他类型、字段和方法的符号引用。

                        运行时常量池是方法区的一部分。

                       Class文件包括了类的版本,字段,方法,接口等描述信息以及常量池。

                &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值