建设银行网站怎么查流水,临汾市建设局网站,信阳建设企业网站公司,网络推广一般都干啥1 Run-Time Data Areas
1.1 The pc Register
1.2 Java Virtual Machine Stacks
1.3 Heap
1.4 Method Area
JVM方法区是在JVM所有线程中共享的内存区域#xff0c;在编程语言中方法区是用于存储编译的代码、在操作系统进程中方法区是用于存储文本段#xff0c;在JVM中方法…1 Run-Time Data Areas
1.1 The pc Register
1.2 Java Virtual Machine Stacks
1.3 Heap
1.4 Method Area
JVM方法区是在JVM所有线程中共享的内存区域在编程语言中方法区是用于存储编译的代码、在操作系统进程中方法区是用于存储文本段在JVM中方法区用于存储每个类的结构其中包括运行时常量池、作用域数据、方法数据、方法的代码、构造函数的代码、类与接口初始化方法、实例初始化方法。
JVM方法区是在JVM启动的时候被创建是属于JVM堆区一个逻辑的部分其支持设置固定的大小、根据运行时的计算所需扩展或者压缩由于JVM方法区是逻辑的内存空间不一定需要连续的物理空间。JVM方法区在以下的条件下将发生异常 假如JVM方法区申请或扩展时所需的内存空间不足则JVM抛出OutOfMemoryError的异常
1.5 Run-Time Constant Pool
JMV运行时常量池是对应每个类或者每个接口的来自class类文件中constant_pool常量表的表示其包括多种类型的常量包括编译时生成的字面数字、在运行时才能处理的引用常量JVM常量池类似于常用编程语言的符号表但是其覆盖的数据范围更广。每个运行时常量池是在JVM方法区中申请JVM在每个类或者接口被创建的时候构造其对应的常量池。JVM在构建每个类或者接口的常量池的时候在以下的条件下将发生异常 假如JVM常量池申请或扩展时所需的内存空间不足则JVM抛出OutOfMemoryError的异常
1.6 Native Method Stacks
JVM的实现使用类似于C语言的常用栈支持native本地方法的非Java语言实现的方法例如使用C语言实现的方法native本地方法栈是在每个线程创建的时候构建。
JVM的native本地方法栈支持固定大小或者动态扩展栈空间可以根据需要计算压缩如果栈空间是固定大小则在栈被创建的时候需要单独选择地址空间。JVM在实现上能为程序员或者用户提供控制JVM栈的初始化大小、动态扩展以及压缩、设置JVM栈的最大值以及最小值JVM栈在以下的条件下将发生异常 假如一个线程在计算时所需要的栈空间大于JVM栈所允许的值则JVM抛出一个StackOverflowError的异常 假如JVM栈能动态扩展当栈扩展时所需的内存空间不足、当创建一个线程时所需的内存空间不足则JVM抛出OutOfMemoryError的异常
2 Frames
每个框是用于存储数据以及部分结果、用于执行动态链接、为方法返回结果、分发异常每个新框是在每次一个方法被调用的时候创建当该方法调用完成的时候框被销毁frames框是由线程从JVM栈中申请而创建每个frame框包括对应方法的本地变量的数组、方法的操作数栈、方法对应的类的运行时常量池的引用。
本地变量数组的大小以及操作数栈是在编译时确定以及跟随着与frrame框架对应的方法代码因此这些结构的内存空间可以在方法被调用的时候创建。
一个线程在执行的过程中同一个时间点只能有一个正在执行的方法对应的frame框是活跃的该frame框被称之为当前frame框则与之对应的方法被称之为当前方法则当前方法对应的类被称之为当前类对本地变量或者操作数栈的操作一般是指当前frame框。
一个线程在执行的过程中当一个当前方法被调用完成或者一个当前方法调用另外的方法则该当前方法不再是当前的当前一个新的方法被调用则一个新frame框被创建而成为当前方法线程控制到新当前方法中。当前方法返回当前frame框也返回调用结果到之前的frame框之前的frame框将成为当前框。被一个线程创建的frame框是本地的不能被其他框引用。
2.1 Local Variables
未完待续