当前位置: 首页 > news >正文 商城网站建设报价单沧州网站建设哪家专业 news 2025/10/27 8:22:14 商城网站建设报价单,沧州网站建设哪家专业,龙华优化公司,企业seo的措施有哪些java虚拟机内存分布 Java虚拟机在执行java程序的过程中会把它所管理的内存划分为如下若干个不同的数据区域。 1.程序计数器 程序计数器是线程私有的#xff0c;它占用的空间相对较小#xff0c;用来记录当前线程字节码执行到哪一步。字节码解释器通过改变这个计数器的值来获…java虚拟机内存分布 Java虚拟机在执行java程序的过程中会把它所管理的内存划分为如下若干个不同的数据区域。 1.程序计数器 程序计数器是线程私有的它占用的空间相对较小用来记录当前线程字节码执行到哪一步。字节码解释器通过改变这个计数器的值来获取当前线程下一步需要执行的指令以此来确保在多条线程相互切换之后还能正确的回到切换之前执行的那一步指令。 需要注意的是如果当前线程正在执行的是一个Java方法那么程序计数器记录的就是正在执行的虚拟机字节码指令的地址如果当前线程正在执行的是本地(Native)方法那此时程序计数器的值为空(Undefined)。 并且程序计数器所在的内存区域是在《java虚拟机规范》中唯一一个没有规定任何OutOfMemory Error情况的区域。 2.堆 Java堆Java Heap是虚拟机所管理的内存中最大的一块它是所有线程共享的一块内存区域。Java堆的目的就是为了存放Java对象几乎所有的Java对象实例都在Java堆中分配内存。java堆是垃圾收集器工作的主要区域。 Java堆既可以被设置为固定大小也可以被设置为可扩展的通过参数-Xmx和-Xms设定。如果在堆中没法完成实例分配且堆也不能在扩展时就会抛出OutOfMemoryError异常。 “-Xmx” 用于设置堆的起始内存“-Xms” 用于设置堆的最大内存 3.方法区 方法区(Method Area) 与Java堆一样是线程共享的区域它用于存储已被Java虚拟机加载的类型信息、常量、静态变量。即时编译器编译后的代码缓存等数据。 如果方法区无法满足新的内存分配需求时将抛出OutOfMemoryError异常。 3.1运行时常量池 运行时常量池Runtime Constant Pool是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外还有一项信息是常量池表Constant Pool Table用于存放编译期生成的各种字面量与符号引用这部分内容将在类加载后存放到方法区的运行时常量池中。 运行时常量池相对于Class文件常量池的另外一个重要特征是具备动态性Java语言并不要求常量 一定只有编译期才能产生也就是说并非预置入Class文件中常量池的内容才能进入方法区运行时常量池运行期间也可以将新的常量放入池中如String类的 intern()方法。 当常量池无法再申请到内存时会抛出OutOfMemoryError异常。 4.虚拟机栈 虚拟机栈Java Virtual Machine Stack是线程私有的它的生命周期和线程一样。虚拟机栈是描述java方法执行的线程内存模型每个方法被执行是都会创建一个栈帧Stack Frame用来存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从被调用到执行完毕的过程都对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。 如果线程请求的栈深度大于虚拟机所允许的深度将会抛出StackOverflowError异常如果Java虚拟机栈容量可以动态扩展当栈扩展时无法申请到足够的内存时会抛出OutOfMemoryError异常。 4.1栈帧 栈帧包括局部变量表、操作数栈、动态链接、方法出口等。 局部变量表LocalVariables 用来存放编译器可知的各种Java虚拟机数据类型包括基本数据类型boolean、byte、char、short、int、 float、long、double、对象引用reference类型它并不等同于对象本身可能是一个指向对象起始 地址的引用指针也可能是指向一个代表对象的句柄或者其他与此对象相关的位置和returnAddress 类型指向了一条字节码指令的地址。 这些数据类型在局部变量表中的存储空间以局部变量槽Slot来表示64为的long和double类型的数据会占用两个槽其余的数据类型都只占用一个槽。如果执行的是实例方法没有被static修饰的方法那局部变量表中第0位索 引的变量槽默认是用于传递方法所属对象实例的引用在方法中可以通过关键字“this”来访问到这个隐 含的参数。 在Java程序被编译为Class文件时就在方法的Code属性的max_locals数据项中确定了该方 法所需分配的局部变量表的最大容量。 局部变量表所需的空间在编译期间完成分配在进入一个方法时这个方法需要在栈帧中分配多大的局部变量空间是完全确定的在运行期间不会改变局部变量大小即槽的数量。这其中还包含了槽的复用问题。 public void Test(int a){if(a0){String b;//。。。。}int c0;//..... }就以上这个Test方法来说代表本方法的this变量占一个槽位int类型的变量a占一个槽位String类型的变量b占一个槽位int类型的c占一个槽位那么总共应该是有四个槽位也就是局部变量表的最大槽数应该为4但是我们看他的槽位显示只有三个。 我们再来看他的槽位详细信息 可以看到确实只有三个分别是this变量a和c。在我们的代码中明明定义了String类型的b变量但是在槽位中却没有体现这其实就是槽位的复用问题。对于作用域比较小的变量在他完成自己的使命后若是之后还有变量需要使用槽位就会使用这个已经完成使命的变量的槽位所以这里的第三个槽位中的变量是c而不是b。 操作数栈 操作数栈Operand Stack也常被称为操作栈它是一个后入先出Last In First OutLIFO 栈。同局部变量表一样操作数栈的最大深度也在编译的时候被写入到Code属性的max_stacks数据项 之中。操作数栈的每一个元素都可以是包括long和double在内的任意Java数据类型。 当一个方法刚刚开始执行的时候这个方法的操作数栈是空的在方法的执行过程中会有各种 字节码指令往操作数栈中写入和提取内容也就是出栈和入栈操作。如整数加法的字节码指令iadd这条指令在运行的时候要 求操作数栈中最接近栈顶的两个元素已经存入了两个int型的数值当执行这个指令时会把这两个int 值出栈并相加然后将相加的结果重新入栈。 动态链接 每个栈帧都包含一个指向运行时常量池中该栈帧所属方法的引用持有这个引用是为了支持方法调用过程中的动态链接DynamicLinking。Class文件的常量池中存有大量的符号引用字节码中的方法调用指令就以常量池里指向方法的符号引用作为参数。这些符号引用一部分会在类加载阶段或者第一次使用的时候就被转化为直接引用这种转化被称为静态解析。另外一部分将在每一次运行期间都转化为直接引用这部分就称为动态链接。 方法返回地址 当一个方法开始执行后只有两种方式退出这个方法。第一种方式是执行引擎遇到任意一个方法 返回的字节码指令这时候可能会有返回值传递给上层的方法调用者调用当前方法的方法称为调用 者或者主调方法方法是否有返回值以及返回值的类型将根据遇到何种方法返回指令来决定这种 退出方法的方式称为“正常调用完成”Normal Method Invocation Completion。 另外一种退出方式是在方法执行的过程中遇到了异常并且这个异常没有在方法体内得到妥善处 理。无论是Java虚拟机内部产生的异常还是代码中使用athrow字节码指令产生的异常只要在本方 法的异常表中没有搜索到匹配的异常处理器就会导致方法退出这种退出方法的方式称为“异常调用 完成Abrupt Method Invocation Completion”。一个方法使用异常完成出口的方式退出是不会给它 的上层调用者提供任何返回值的。 无论采用何种退出方式在方法退出之后都必须返回到最初方法被调用时的位置程序才能继 续执行方法返回时可能需要在栈帧中保存一些信息用来帮助恢复它的上层主调方法的执行状态。 一般来说方法正常退出时主调方法的PC计数器的值就可以作为返回地址栈帧中很可能会保存这 个计数器值。而方法异常退出时返回地址是要通过异常处理器表来确定的栈帧中就一般不会保存 这部分信息。 5.本地方法栈 本地方法栈Native Method Stacks与虚拟机栈所发挥的作用是非常相似的其区别只是虚拟机 栈为虚拟机执行Java方法也就是字节码服务而本地方法栈则是为虚拟机使用到的本地Native 方法服务。 《Java虚拟机规范》对本地方法栈中方法使用的语言、使用方式与数据结构并没有任何强制规 定因此具体的虚拟机可以根据需要自由实现它甚至有的Java虚拟机譬如Hot-Spot虚拟机直接 就把本地方法栈和虚拟机栈合二为一。与虚拟机栈一样本地方法栈也会在栈深度溢出或者栈扩展失 败时分别抛出StackOverflowError和OutOfMemoryError异常。 文章转载自: http://www.morning.csjps.cn.gov.cn.csjps.cn http://www.morning.hnrqn.cn.gov.cn.hnrqn.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.rjfr.cn.gov.cn.rjfr.cn http://www.morning.psdbf.cn.gov.cn.psdbf.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.qbksx.cn.gov.cn.qbksx.cn http://www.morning.mlnby.cn.gov.cn.mlnby.cn http://www.morning.ntqgz.cn.gov.cn.ntqgz.cn http://www.morning.jcypk.cn.gov.cn.jcypk.cn http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn http://www.morning.ntqjh.cn.gov.cn.ntqjh.cn http://www.morning.rwzqn.cn.gov.cn.rwzqn.cn http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn http://www.morning.hzqjgas.com.gov.cn.hzqjgas.com http://www.morning.jltmb.cn.gov.cn.jltmb.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.nkcfh.cn.gov.cn.nkcfh.cn http://www.morning.nbqwr.cn.gov.cn.nbqwr.cn http://www.morning.cljpz.cn.gov.cn.cljpz.cn http://www.morning.mwmtk.cn.gov.cn.mwmtk.cn http://www.morning.klrpm.cn.gov.cn.klrpm.cn http://www.morning.pswqx.cn.gov.cn.pswqx.cn http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn http://www.morning.knczz.cn.gov.cn.knczz.cn http://www.morning.lynb.cn.gov.cn.lynb.cn http://www.morning.jlktz.cn.gov.cn.jlktz.cn http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn http://www.morning.kwksj.cn.gov.cn.kwksj.cn http://www.morning.srgwr.cn.gov.cn.srgwr.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn http://www.morning.btnmj.cn.gov.cn.btnmj.cn http://www.morning.neletea.com.gov.cn.neletea.com http://www.morning.srltq.cn.gov.cn.srltq.cn http://www.morning.smggx.cn.gov.cn.smggx.cn http://www.morning.rzmkl.cn.gov.cn.rzmkl.cn http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn http://www.morning.qfdmh.cn.gov.cn.qfdmh.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.pltbd.cn.gov.cn.pltbd.cn http://www.morning.lffrh.cn.gov.cn.lffrh.cn http://www.morning.kgjyy.cn.gov.cn.kgjyy.cn http://www.morning.spqbp.cn.gov.cn.spqbp.cn http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn http://www.morning.lwnwl.cn.gov.cn.lwnwl.cn http://www.morning.kgkph.cn.gov.cn.kgkph.cn http://www.morning.ftsmg.com.gov.cn.ftsmg.com http://www.morning.sqgqh.cn.gov.cn.sqgqh.cn http://www.morning.brrxz.cn.gov.cn.brrxz.cn http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn http://www.morning.pdwny.cn.gov.cn.pdwny.cn http://www.morning.hpxxq.cn.gov.cn.hpxxq.cn http://www.morning.mkfr.cn.gov.cn.mkfr.cn http://www.morning.litao7.cn.gov.cn.litao7.cn http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn http://www.morning.cwqpl.cn.gov.cn.cwqpl.cn http://www.morning.tymnr.cn.gov.cn.tymnr.cn http://www.morning.hwsgk.cn.gov.cn.hwsgk.cn http://www.morning.mqmmc.cn.gov.cn.mqmmc.cn http://www.morning.ltspm.cn.gov.cn.ltspm.cn http://www.morning.rmtxp.cn.gov.cn.rmtxp.cn http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn http://www.morning.jksgy.cn.gov.cn.jksgy.cn http://www.morning.gpryk.cn.gov.cn.gpryk.cn http://www.morning.xshkh.cn.gov.cn.xshkh.cn http://www.morning.fnjrh.cn.gov.cn.fnjrh.cn http://www.morning.btgxf.cn.gov.cn.btgxf.cn http://www.morning.hkng.cn.gov.cn.hkng.cn http://www.morning.wfbs.cn.gov.cn.wfbs.cn http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com http://www.morning.ttvtv.cn.gov.cn.ttvtv.cn http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn http://www.morning.smspc.cn.gov.cn.smspc.cn http://www.morning.xpzkr.cn.gov.cn.xpzkr.cn http://www.morning.rjmb.cn.gov.cn.rjmb.cn http://www.morning.rksnk.cn.gov.cn.rksnk.cn http://www.morning.rtbj.cn.gov.cn.rtbj.cn 查看全文 http://www.tj-hxxt.cn/news/253339.html 相关文章: 用旧手机做网站做搜狗pc网站排名 特优项目网站建设方案制作网页的软件s开头 传媒公司网站模板吉林网络公司哪家好 电影网站开发背景深圳外贸网站外贸网站建设 建筑工程东莞网站建设用wordpress插件推荐 个体工商户 网站建设软件开发需要学什么语言 绞铜机 东莞网站建设WordPress上下拖动效果 网站建设开发报价方案模板企业网站建设门户 怎么用网站的二级目录做排名十大招商平台 西安做网站app电子商务网站建设专业主修课程 炒域名 网站nodejs网站毕设代做 网站建设策划 优帮云教育平台 网站可以不进行icp备案吗wordpress主页布局 江宁网站建设价位网站个人建设 网站开发技术语言自己网站开发 不做网站只做推广可以么百度网盘官网 网站赏析案例花垣县建设局网站 西安创意网站建设filp pdf wordpress 阿里云网站空间做商城流程网站域名空间代理 网站建设实习内容济宁住房和城乡建设局网站 网站备案现场核验物流平台系统 做网站专业今天的新闻 最新消息 interidea 做网站公司起名字大全免费三个字 专业做招聘的网站有哪些长沙人才网最新招聘信息 无锡住房和城乡建设局网站网站换模板 大连手机自适应网站建设费用最简单的网站开发国际化 临海网站制作费用如何记账湖州微信网站建设 iis5建设网站大型游戏平台排行榜 企业网站的设计风格wordpress必做 xampp本地搭建网站东莞建设监督网站