Java虚拟机栈的特征

线程私有

后进先出(LIFO)栈

存储栈帧,支持Java方法的调用、执行和退出

可能出现OutOfMemoryError异常和StackOverflowError异常

Java本地方法栈的特征

线程私有

后进先出(LIFO)栈

作用是支撑Native方法的调用、执行和退出

可能出现OutOfMemoryError异常和StackOverflowError异常

有一些虚拟机(如HotSpot)将Java虚拟机栈和本地方法栈合并实现

栈帧的概念和特征

Java虚拟机栈中存储的内容,它被用于存储数据和部分过程结果的数据结构,同时也被用来处理动态链接、方法返回值和异常分派

一个完整的栈帧包含:局部变量表、操作数栈、动态连接信息、方法正常完成信息和方法异常完成信息

局部变量表概念和特征

由若干个Slot组成,长度由编译期决定

单个Slot可以存储一个类型为boolean,byte,char,short,float,reference和returnAddress的数据,两个Slot可以存储一个类型为long或double的数据

局部变量表用于方法间参数传递,以及方法执行过程中存储基础数据类型的值和对象的引用

操作数栈的概念和特征

是一个后进先出栈,由若干个Entry组成,长度由编译期决定

单个Entry即可以存储一个Java虚拟机中定义的任意数据类型的值,包括long和double类型,但是存储long和double类型的Entry深度为2,其他类型的深度为1

在方法执行过程中,栈帧用于存储计算参数和计算结果;在方法调用时,操作数栈也用来准备调用方法的参数以及接收方法返回结果

java 本地方法栈_Java虚拟机栈和本地方法栈相关推荐

  1. java 常量 内存分配_Java内存分配之堆、栈和常量池

    寄存器:最快的存储区,位于不同于其他存储区的地方--处理器内部.寄存器的数量极其有限,所以寄存器由编译器根据需求 进行分配.你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象. 栈:存放基本类型 ...

  2. java痴和堆_JAVA虚拟机理解 - 爱笑的痴迷者的个人空间 - OSCHINA - 中文开源技术交流社区...

    JVM定义: JVM(Java Virtual Machine),是一种运行Java程序的软件实现,是虚拟的机器.Java程序与平台无关,它直接在虚拟机中运行. JVM运行过程: JVM将内存分划如下 ...

  3. java 内存泄露 书籍_java虚拟机内存溢出和泄漏实例

    测试参数设置: 1.循环调用new A()实现堆溢出,java.lang.OutOfMemoryError: Java heap space, 虚拟机参数:-Xms1M -Xmx1M -XX:+Hea ...

  4. java 当前utc时间_Java获取UTC时间的方法详解

    本文实例讲述了java获取utc时间的方法.分享给大家供大家参考,具体如下: 取得本地时间: java.util.calendar cal = java.util.calendar.getinstan ...

  5. java 遍历list 性能_java list三种遍历方法性能比較

    从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便測试各种遍历方法的性能,測试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...

  6. java join使用实例_Java多线程中关于join方法的使用实例解析

    先上代码 新建一个Thread,代码如下: package com.thread.test; public class MyThread extends Thread { private String ...

  7. 海信JAVA开发笔试题_JAVA设计模式之【工厂方法模式】

    看例子 1.TV产品接口,负责播放 public interface TV // TV接口 { public void play(); } 2.TV工厂接口,负责生产产品 public interfa ...

  8. java 常量池 堆_Java 内存分配(堆、栈、常量池)

    Java内存分配: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,以及成员方法中的局部变量 ◆堆:存放对象本身(成员变量+成员方法的引用) ◆静态域:存放在对象中用static ...

  9. java dump分析工具_Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化...

    大家好,我是可乐,一个专注原创,乐于分享的程序猿. 本系列教程持续更新,可以微信搜索「 IT可乐 」第一时间阅读.回复<电子书>有我为大家特别筛选的海量免费书籍资料 通过前面的几篇博客,我 ...

最新文章

  1. Myeclipse学习总结(5)——Myeclipse常用快捷键再学习
  2. Attention Is All You Need (transformer)
  3. 【OJ】OJ的介绍和常用OJ推荐
  4. rust(64)-指针类型(1)
  5. TP、Yii、Laravel的区别
  6. python用法查询笔记_Python爬虫学习笔记(三)
  7. nc65 单据非向导开发 源代码_【免费毕设】ASP.NETIT产品网上物流管理信息系统的设计与实现(源代码+论文)...
  8. 系统类配置(三)【ubuntu14.04或者ubuntu16.04 配置caffe】
  9. 龙果学院Elasticsearch顶尖高手系列-高手进阶篇完整版
  10. 容积卡尔曼滤波算法 CKF
  11. Codeforces - Mike and Feet
  12. 垃圾收集算法,垃圾收集器_实时垃圾收集
  13. 到北京软通动力做项目经理怎么样?
  14. 中国乳制品设备市场趋势报告、技术动态创新及市场预测
  15. bzoj1599[Usaco2008 Oct]笨重的石子*
  16. linux服务器套件,TheSSS 23.1维护更新,轻量级服务器套件
  17. 注册表去除桌面快捷方式小箭头引起此电脑右键管理无法使用
  18. 【云平台】与【物联网云平台】
  19. Cocos Creator游戏项目环境搭建和启动
  20. BUUCTF:[SUCTF 2019]Game

热门文章

  1. java session 同步_session同步
  2. matlab 列表 剪切,利用Matlab进行文件批量复制、剪切和修改文件名
  3. android 打印kernel log,android8.0 kernel4.9.44 各层log打开
  4. java里面自行车的属性_11、Java基础知识
  5. toad查看oracle的plsql包,Oracle logminer 分析redo log(TOAD与PLSQL)
  6. python写入数据到excel_python实现查询的数据写入到excel
  7. 电脑动态壁纸_每日壁纸—水彩插画少女动漫手机高清无水印壁纸第二波
  8. pyinstaller安装失败解决
  9. java 将换行代替_Java批量将文件中的段落替换成空格,根据指定分隔符换行(SQL示例)...
  10. 中奖名单模板_春分纪中奖名单出炉~才艺主公用“树叶阵法”致敬率土!