关于java方法调用时产生的StackFrame内部内容。
来源:互联网 发布:共享单车app源码 编辑:程序博客网 时间:2024/04/29 02:00
引自《深入Java虚拟机》:
栈帧由三部分组成:局部变量区、操作数栈和栈数据区。局部变量区和操作数栈要视对应的方法而定,他们是按字长计算的。编译器在编译时就确定了这些值并放在class文件中,而栈数据区的大小依赖于具体实现。
当虚拟机调用一个java方法时,它从对应的类的类型信息得到局部变量区和操作数栈的大小,并据此分配栈帧内存,并压入java栈中。
局部变量区 java栈帧的局部变量区被组织成一个以字长为单位、从0开始计数的数组。字节码指令通过以0开始的索引来使用其中的数据。类型为int、float、refence(引用)和returnAdress(方法出口)的值在数组内只占据一项。而类型为byte、short、char的值在存入数组时都先转换为int值,因此同样只占据一项。而类型为long和double的值在数组中却占据了连续两项。
局部变量区包含了对应的方法参数和局部变量。
0 0
- 关于java方法调用时产生的StackFrame内部内容。
- Java产生任意范围内的随机字符,内部多种方法进行调用
- java 关于对“是否可以从一个static方法内部发出对非static方法的调用”问题的理解
- java中关于构造函数内部调用自己的问题
- java实体类里有个'内部实体类'的调用方法
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- 关于拦截方法调用其他内部方法无法被拦截问题的解决
- [拦截器]关于拦截方法调用其他内部方法无法被拦截问题的解决
- 关于Java中方法调用时参数的传递
- 关于Java中方法调用时参数的传递
- 关于Java中方法调用时参数的传递
- 关于Java中方法调用时参数的传递
- python 定义类时,内部方法的互相调用
- 关于Java调用dll的方法
- 关于Java调用dll的方法
- 关于Java调用dll的方法
- 优秀程序员因何而优秀?
- Linux——信号量(同步)
- 2014腾讯校招软开类笔试题
- CSS 继承
- linux 进程(关于守护进程、检查一个进程是否活着、如何写一个进程号文件)
- 关于java方法调用时产生的StackFrame内部内容。
- NSString 常用处理方法
- java创建文件和目录
- [转]win7中java环境变量配置
- 学习Linux系统的十一点建议
- 从 C/C++ 程序调用 Java 代码
- 服务器集群后,共享session问题
- Unreal Enginer4特性介绍-牛B闪闪的UE4
- launchAnyWhere: Activity组件权限绕过漏洞解析